作为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. 在java程序中利用线程

    package 第十一章; import java.awt.Button; import java.awt.Color; import java.awt.Font; import java.awt.F ...

  2. Python爬虫之urllib.parse详解

    Python爬虫之urllib.parse 转载地址 Python 中的 urllib.parse 模块提供了很多解析和组建 URL 的函数. 解析url 解析url( urlparse() ) ur ...

  3. hashlib模块和logging模块

    hashlib Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 我们以常见的摘要算法MD5为例,计算出一个字符串的MD5值: import hashlib m=hashli ...

  4. Web基础之http协议

    第6章 Web基础之http协议 第6章 Web基础之http协议一.http协议介绍 1.1)什么是超文本 1.2)什么是URL 1.3)什么是超文本传输协议二.访问网站分析三.页面请求信息解析(仅 ...

  5. Linux架构之Nginx 高可用

    第53章 Nginx之高可用Keepalived 一.Keepalived高可用基本概述 1.1)什么是高可用 一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快 ...

  6. 【转】linux 查看哪些进程用了swap

    转自:http://blog.csdn.net/xiangliangyu/article/details/8213127 如果系统的物理内存用光了,则会用到swap.系统就会跑得很慢,但仍能运行;如果 ...

  7. pandas处理字符串

    # pandas 字符串的处理 # 前面已经学习了字符串的处理函数 # df["bWendu"].str.replace("℃","").a ...

  8. u-boot 用哪个lds链接脚本

    顶层Makefile文件中 : ifndef LDSCRIPT    #LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds.debug    ifd ...

  9. vue单页面项目中解决安卓4.4版本不兼容的问题

    1.cnpm安装 cnpm i babel-polyfill --save cnpm i es6-promise --save 2.main.js引入 import ‘babel-polyfill‘ ...

  10. 《扩展和嵌入python解释器》1.4 模块方法表和初始化函数

    <扩展和嵌入python解释器>1.4 模块方法表和初始化函数   1.4 模块方法表和初始化函数 下面,我演示如何从Python程序调用spam_system().首先,我们需要在’方法 ...