非web工程,打jar放shell执行

作为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也实验下。

 运行结果








原文地址:https://www.cnblogs.com/xiaozhuanfeng/p/11449388.html