作为6年经验的程序员,一直在搞web服务应用开发,今天领导被吐槽了,只会web方面的东东,最基本的打包啥啥都不会。。

一般开发工程都是web项目,突然要求开发非web,不用tomcat装(浪费端口号),脑子里其实第一反应就是打jar包。

废话不多说:整体思路,ant 打jar,注意,此处依赖的lib和config不要打进来,当然如果作为公共组件啥的可以打成一个jar。

Linux:

${JAVA_HOME}/bin/java  -Xms256M  -Xmx512M -cp .:./lib/*:./config/*:jarProj.jar  com.gcc.Application

windows:中上面的冒号变成分毫:

${JAVA_HOME}/bin/java  -Xms256M  -Xmx512M -cp .;./lib/*;./config/*;jarProj.jar  com.gcc.Application

工程目录:

启动入口:

package com.gcc;

import org.apache.log4j.PropertyConfigurator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; public class Application { private static final Logger LOGGER = LoggerFactory.getLogger(Application.class); public static void main(String[] args) throws IOException {
InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("config/log4j.properties");
PropertyConfigurator.configure(in); /* Properties p = new Properties();
p.load(in);*/ LOGGER.debug("haha {} ,xiao zi ...","debug");
LOGGER.info("haha {} ,xiao zi ...","info");
LOGGER.error("haha {} ,xiao zi ...","error");
}
}

然后可以用ant打jar包,注意:不用把配置和依赖jar打进jar。配置和jar包,可以放再外面的config和lib包,写个思路吧。。。累

-------------------------------

通过idea打包可运行jar(第三方jar外部引用版)

extract to the target JAR是将第三方jar打入最终jar包。这里是外部引用,所以不勾选。

<output root> Create Directory>libs

最后Class path ,注意lib要删除。

查看MANIFEST.MF文件

Manifest-Version: 1.0
Class-Path: libs/log4j-1.2.17.jar libs/slf4j-api-1.7.2.jar libs/slf4j-
log4j12-1.7.2.jar
Main-Class: com.gcc.Application build后,在windows本地运行下:前一个是libs不放第三方jar

-------------------------------------

顺便把可执行jar,外部jar打进最终jar也实验下。

运行结果


非web工程,打jar放shell执行的更多相关文章

  1. java web工程导入jar包流程,容易犯错

    1)首先把jar包拷贝到WEB-INF/lib下 2)在Eclipse中web/WEB-INF/lib路径下刷新.(省略此步骤就会找不到) 3)Java Build Path中Remove掉Web A ...

  2. [Visual Studio] [Config] [Transformation] [SlowCheetah] 在非Web工程中使用Transformation

    1. 为VS安装SlowCheetah插件 https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.Sl ...

  3. idea maven web工程明明添加了maven lib的依赖,但启动web容器时始终报No Class Found?

    idea maven web工程明明添加了maven lib的依赖,但启动web容器时始终报No Class Found? 很久没用idea搭新工程,最近自己想做个东西,冲心搭个web工程,jar包都 ...

  4. Java封装JDBC数据库增、删、改、查操作成JAR文件,以供Web工程调用,适用于多种数据库

    废话不多说,直接上源代码,最后有使用方法,当然,也可以作为普通公用类使用,只是封装成JAR更方便使用. package db.util; import java.io.BufferedReader; ...

  5. 将一个SpringBoot工程打成jar包并在控制台执行起来

    JDK:1.8.0_212 IDE:STS4(Spring Tool Suit4 Version: 4.3.2.RELEASE) 工程下载:https://files.cnblogs.com/file ...

  6. Eclipse动态web工程(Dynamic Web Project)添加jar文件的正确方法

    Eclipse中,创建了动态web工程之后,如果需要添加新的jar文件,有两种方法.第一种是配置工程的“build path”,第二种则是将jar文件放在工程目录下的“/WebContent/WEB- ...

  7. shell执行class或jar

    mc11>java -cp /home/ap/user/webproject/web.war/WEB-INF/lib/*:. com.userpackage.ExcelDemo 说明:/home ...

  8. web工程jar包问题

    JRE System Library主要存放J2SE的标准jar,一般不需要调整. Referenced Libraries是存放第三方的jar包,也就是自己导入的jar包.在项目属性的Java Bu ...

  9. Maven创建Web工程并执行构建/测试/打包/部署

    创建工程基本参考上一篇Java Application工程,不同的是命令参数变了,创建Web工程的命令如下: mvn archetype:generate -DgroupId=com.jsoft.te ...

随机推荐

  1. Ajax加载数据后百度分享实例

    <script type="text/javascript"> //百度分享 function baidu_share() { var title_val = $(&q ...

  2. 02java基础——类和方法

    1.类的定义 /* 定义类: 使用类的形式,对现实中的事物进行描述 事物: 属性,方法 属性: 变量 方法: 这个事物具备的功能 格式: public class 类名{ 属性定义 修饰符 数据类型 ...

  3. GUI学习之三十—QCalendarWidget学习总结

    今天学习的是最后一个展示控件——QCalendarWidget 一.描述 QCalendarWidget提供了一个基于每月的日历控件,允许用户选择一个日期,还可以看一下里面的图示: QCalendar ...

  4. 4--面试总结-promise

    promise异步原理: 定义:promise是异步编程的解决方案,可以解决异步回调地狱的问题: 原理:三种状态两种结果的一个状态机:三种状态(pending,fulfilled,rejected)两 ...

  5. “jps”命令的用处?

    jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号. jps相当于Solaris进程工具ps.不像”pgrep java” 或”ps -ef grep java”,jp ...

  6. php----等比缩放图片

    <?php /** * Created by PhpStorm. * User: admin * Date: 2019/11/19 * Time: 8:54 */ $filename = 'lo ...

  7. twint 安装及使用

    分享这个post是自己方便查,还有中文网界对这个东西介绍太少. 更多的就看github项目twint吧. Installation: git+pip3: git clone https://githu ...

  8. linux运维、架构之路-MySQL日志(三)

    一.MySQL日志 1.错误日志 ①配置方法 [mysqld] log-error=/data/mysql/mysql.log ②查看配置方式 mysql> show variables lik ...

  9. iOS 指定位置切圆角不生效问题

    如果是在VC中操作,需要在viewDidLayoutSubviews方法里 - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; ...

  10. 【bzoj1096】[ZJOI2007]仓库建设

    *题目描述: L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用.突然有一天,L公司的总 ...