利用Packr打包Libgdx游戏到PC端

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: 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的使用需要慎重。

参考资料

packr in Github
minimizeJre

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2014/05/12/packr-java-application/

发表评论