打包成可执行bat文件

1.

java项目打包成deb文件_jar



java项目打包成deb文件_java项目打包成deb文件_02



java项目打包成deb文件_java_03


java项目打包成deb文件_ci_04


java项目打包成deb文件_java_05

打包成的jar里找到MANIFEST.MF文件,加入项目依赖的jar包路径,内容如下:

Manifest-Version: 1.0
 Class-Path: lib/slf4j-api-1.7.22.jar lib/slf4j-simple-1.7.22.jar lib/c
 ommons-configuration-1.5.jar lib/commons-collections-3.2.jar lib/comm
 ons-lang-2.3.jar lib/commons-logging-1.1.jar lib/log4j-1.2.12.jar lib
 /logkit-1.0.1.jar lib/avalon-framework-4.1.3.jar lib/servlet-api-2.3.
 jar lib/commons-digester-1.8.jar lib/commons-beanutils-1.7.0.jar lib/
 commons-beanutils-core-1.7.0.jar lib/commons-codec-1.10.jar
 Main-Class: com.gh.CopyFile

2.新建一个文件夹,
放入jre
Jar包
新建一个bat文件

java项目打包成deb文件_java项目打包成deb文件_06

Bat文件内容如下,注意最后有回车键
start jre/bin/javaw -jar copyData.jar

如果MANIFEST.MF文件里没有配置依赖jar包,在bat里就需要配置

java项目打包成deb文件_ci_07

问题汇总:
1.执行java -jar project-0.0.1-SNAPSHOT.jar
错误: 找不到或无法加载主类
解决方案:clean --》build All 重新编译打包maven build

2.不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;4、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,否则将会出现“jar中没有主清单属性”的错误。

java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,window上分号“;”
格式:
java -cp .;myClass.jar packname.mainclassname
表达式支持通配符,例如:
java -cp .;c:\classes01\myClass.jar;c:\classes02*.jar packname.mainclassname

java -jar myClass.jar
执行该命令时,会用到目录META-INF\MANIFEST.MF文件,在该文件中,有一个叫Main-Class的参数,它说明了java -jar命令执行的类。

用maven导出的包中,如果没有在pom文件中将依赖包打进去,是没有依赖包。
1.打包时指定了主类,可以直接用java -jar xxx.jar。
2.打包是没有指定主类,可以用java -cp xxx.jar 主类名称(绝对路径)。
3.要引用其他的jar包,可以用java -classpath $CLASSPATH:xxxx.jar 主类名称(绝对路径)。其中 -classpath 指定需要引入的类。

1.pom中build指定mainClass 但是 META-INF\MANIFEST.MF文件中没有指定Main-Class: test.core.Core
java -jar test-jar-with-dependencies.jar //执行成功
java -cp test-jar-with-dependencies.jar test.core.Core //执行失败,提示jar中没有主清单属性

2.pom中build没有指定mainClass 但是 META-INF\MANIFEST.MF文件中指定了Main-Class: test.core.Core
java -jar test-jar-with-dependencies.jar //执行失败,提示jar中没有主清单属性
java -cp test-jar-with-dependencies.jar test.core.Core //执行成功

3.pom中build指定mainClass && META-INF\MANIFEST.MF文件中增加了Main-Class: test.core.Core

java -cp test-jar-with-dependencies.jar test.core.Core //执行成功

java -jar test-jar-with-dependencies.jar //执行成功

java项目打包成deb文件_java项目打包成deb文件_08


java项目打包成deb文件_jar_09

@echo on 打开回显
@echo off 关闭回显
Pause执行完cmd窗口是否直接关闭,不写运行完直接关闭窗口