本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2014/05/12/packr-java-application/
平时最常用的是Java语言,写出的Java程序一般用Gradle Application插件打包一下。这样就有不同平台的启动文件,基本也算不错的解决方案。
但这样求用户本身有Java环境,而且这个条件不一定能够满足,还需要自己打包一下环境。
因为Libgdx框架做出来的东西也有这个需求,所以它专门提供了一个packr工具来解决这个问题。
命令行直接操作
packr提供一个with-dependencies包,可以直接运行,在命令行使用即可。
java -jar packr-1.0-SNAPSHOT-jar-with-dependencies.jar
-platform mac
-jdk"openjdk-1.7.0-u45-unofficial-icedtea-2.4.3-macosx-x86_64-image.zip"
-executable myapp
-appjar myapp.jar
-mainclass"com/my/app/MainClass"
-vmargs"-Xmx1G"
-resources pom.xml;src/main/resources
-minimizejretrue
-outdir out
因为打包一般针对不同的平台,所以platform
的选项为windows,linux或者mac。
jdk最后指定本地文件,当然网络地址也可以。
executable是可以执行文件的名称,不包含后缀。
appjar是你打包好的jar文件,mainclass是启动主类。
如果需要的话可以通过vmargs指定vm参数,比如-Xms512m -Xmx1024m
。
minimizejre可以缩小一点暂用空间。
Json配置
如果自动打包的话Json配置稍微好一下,比拼解好看多了。
{
"platform":"linux",
"jdk":"/Users/badlogic/Downloads/openjdk-1.7.0-u45-unofficial-icedtea-2.4.3-linux-x86_64-image.zip",
"executable":"superjump",
"appjar":"superjump.jar",
"mainclass":"com/libgdx/superjump/MainClass",
"vmargs": [
"-Xmx1024m"
],
"resources": [
"pom.xml",
"src/main/resources"
],
"minimizejre":true,
"outdir":"out-linux"
}
这样直接运行
java -jar packr-1.0-SNAPSHOT-jar-with-dependencies.jar config.json
Gradle直接打包
利用Gradle去打包是一个很省心的事情,现在buildscript中申明对packr的依赖。
buildscript {
repositories {
mavenCentral()
}
ext {
packrVersion ='1.0'
}
dependencies {
classpath"com.badlogicgames.packr:packr:$packrVersion"
}
}
然后在任务中指定就可以了
task dist << {
Configconfig = new Config();
config.platform = Platform.windows;
config.jdk ="/User/badlogic/Downloads/openjdk-for-windows.zip";
config.executable ="app";
config.jar ="app.jar";
config.mainClass ="com/my/app/MainClass";
config.vmArgs = Arrays.asList("-Xmx1024m");
config.minimizeJre =true;
config.outDir ="out-windows";
new Packr().pack(config)
}
其他平台的配置修改platform和jdk地址就可以了。
缺陷
packr现有还有一些缺陷没有解决,比如没有icon图标,对于系统有32/64位的要求,JRE minimization的使用需要慎重。
参考资料
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2014/05/12/packr-java-application/