问题标签 [packr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Packr 不工作
我想导出我的 LibGDX 游戏,但是当我尝试使用此配置运行 packr 时:
我在控制台中得到这个输出:
但一切似乎都已到位:
我在“out”目录中得到以下输出(显然,运行 42KB exe 文件不起作用):
这是 .jar 文件的内容:
我认为由于未指定 res 文件夹,它可能无法正常工作,但我不知道要修复它。
更新:
我尝试创建一个新的 xml 文件 pom.xml,其中包含以下内容:
更改 config.json 以包含以下内容:
输出文件夹看起来相同,除了包含 pom.xml 文件。而且现在我得到了这个错误:
java - packr TestApp 构建不会运行
(Windows 8.1)
这就是我构建.exe的方式:
去这里,https://github.com/libgdx/packr
下载 packr 和 .zip。我使用“javac -sourcepath $SRC -d $BIN”编译TestApp 源代码。
类文件现在在bin>com>badlogicgames>packr 我去 bin,创建 manifest.txt 读取“Main-Class: com.badlogicgames.packr.TestApp”
我创建了 jar: jar -cvmf manifest.txt testapp.jar com jar 已创建并且运行良好。
我将 jar 移动到我正在使用的主文件夹中,其中包含 packr.jar 和 config.json
配置文件
根据文档,资源是可选的,所以我选择不使用它。我已经尝试在配置文件中的该部分的正确位置使用资源和资源文件夹和 pom.xml,但它得到了相同的结果(运行 exe 什么都不做)
运行 packr "java -jar packr.jar config.json"
我收到警告“SLF4J:无法加载类 'org.slf4j.impl.StaticLoggerBinder'”
但该过程继续并创建了一个 exe。我在这个线程上看到过:
据说修复了这个警告(还没有尝试过,它似乎相当复杂,因为我不确定我应该在哪里将指定的.jars添加到类路径中(回答者在运行'jar'时说,但他在说哪个jar关于我不能说))
但他说这“只是一个警告”,而且似乎无关紧要,所以我不确定这是否是 .exe 没有运行的原因。
那将是我的第一个问题,这是为什么 .exe 无法运行的警告?
如果不是,这里有什么问题?我应该使用 pom.xml 和资源文件夹吗?
同样在那个问题中,一个名为“ gouessej ”的用户建议使用包含依赖项的 packr jar,当我下载和使用它时,它会创建一个实际作为进程启动几秒钟的 exe。该程序仍然无法正常运行。
如果我可以让某人非常清楚地为我拼写出来,我必须做些什么才能让这个 .exe 工作,我将非常感激。
java - 让 OpenJDK 与 Packr 一起工作
使用 JSON 配置,我指定了一个 opendjk 预构建,其中包含一个 JRE。(实际上是自述文件中 packr 示例中指定的确切内容)
它成功地将我的 JAR 打包到一个 mac 可执行文件中。
我运行可执行文件,它在我的 Yosemite 上按预期工作(我还安装了 Oracle JDK)
当我在另一台装有 Yosemite(没有安装任何 JDK)的 Mac 上运行可执行文件时,它会抛出java/lang/NoClassDefFoundError: java/lang/Object
但它应该使用由 packr 指定并与可执行文件一起打包的 JRE。它不应该依赖于系统来安装 JDK。
编辑:添加 config.json 代码 -
java - 如何将打包步骤添加到 Maven 构建脚本?
我正在尝试调整我的构建过程以生成独立的可执行文件。有一些工具可以做到这一点,Packr 似乎是一个完美的工具。据我所知,它是我的 Maven 官方支持的。
在花了大约一个时期的谷歌搜索之后,我没有找到一个简单的打包器构建步骤的简单 maven XML 示例。此外,我对 Maven 很陌生,这使得这变得更加复杂。但在我看来,应该有一个相当标准的 XML 块,只需要更改几个 jar 名称即可使其正常工作。
我也在 eclipse 中工作并尝试为 windows 和 linux 构建可执行文件。
打包器:https ://github.com/libgdx/packr
Maven 中的 Packr:https ://mvnrepository.com/artifact/com.badlogicgames.packr/packr
java - 我可以将 Java 应用程序编译为在 Linux 上运行的单个二进制文件吗?
配置 JRE 或 JAVA_HOME 等应该没有任何额外的要求。我想在二进制文件中捆绑一个 jre(最好是 IBM JRE)。
我查看了以下工具:
JWrapper:似乎需要一个我不需要的闪屏,因为我正在开发一个控制台应用程序
packr:似乎仅适用于 Oracle 和 OpenJDK 的 IBM JRE。
Jar2Exe:似乎也不适用于 IBM JRE。
其他一切似乎只适用于 Windows。
还有其他我不知道的工具吗?packer 和 Jar2EXE 是否应该与 IBM JRE 一起工作,但我做错了什么?
java - 从 .jar 制作 MacOS 应用程序包时出现 NoClassDefFoundError
我已经尝试解决这个问题已经好几个小时了。我有一个以 .jar 格式导出的 java 程序。jar 工作正常,但我想 a) 将它捆绑到 MacOS 应用程序 (.app) b) 在应用程序中包含 JRE。我使用 packr https://github.com/libgdx/packr来实现这一点。但是,packr 制作的应用程序存在一些问题。当我启动它时我得到了这个:
查看堆栈跟踪,它显然与音频 IO 有关;这一假设也与程序似乎在使用音频之前一直运行的印象一致;但我只是不知道要改变什么,因为 .jar 工作得很好。
packr 的配置文件如下所示:
有任何想法吗?
更新:解决方案 它与音频 I/O 无关,实际上解决方案要简单得多:packr 有一个可选的最小化例程,它在打包之前删除 JRE 的不必要部分,以使应用程序包尽可能小可能的。不幸的是,com.sun.media 是被删除的软件包之一。解决方案:打包前禁用最小化选项。
windows64 - Packr Windows exe无法正常工作
从https://github.com/libgdx/packr下载 packr & Packr json 是
test-hello.jar 有 Main.class,它只是在 System.out 上写“Hello”。打包exe时没有报错。但是,当我运行 exe 时,控制台上没有输出。json 中是否有我遗漏的内容?有没有人有一个简单的工作示例?
java - 为我的 Java 应用程序 Jar 文件创建 Linux 可执行文件
我发现Packr是在 Linux 上为我的 Java 应用程序创建可执行文件的最佳工具。该可执行文件在 Linux 上完美运行,但我对此工具有疑问:
该工具强制我将 JRE 与输出文件夹一起嵌入,从而导致我的应用程序输出很大。我可以在不嵌入 JRE 的情况下创建可执行文件吗?
java - 使用 Packr 将 LibGDX 程序打包为 exe 会破坏打开 URL 流的代码
在我的 LibGDX 程序中,我尝试从https://api.ipify.org获取用户的 IP 。当我直接运行 jarfile 时,它按预期工作,但是当我运行 Packr 生成的 exe 时它会中断。
我用 JDK 11.0.1 编译了 jar,并尝试将它与 JDK 11 和 12 捆绑在一起。因为 JDK 11 和 12 不包含 Packr 查找的 jre 文件夹,所以我手动创建了它并将 bin 和 lib 复制到其中。这是我给 Packr 的配置 json:
此代码在我的 Screen 的 show() 方法中运行。
当我运行 exe 并打印到日志文件时,它只打印“尝试开始时”并且窗口关闭。它不会因“程序已停止工作”而崩溃;窗口只是关闭,没有任何解释。日志文件不包含任何一个捕获的打印。当我直接运行 jarfile 时,一切都按预期工作。
编辑我尝试改用 LibGDX 的 HTTP 方法:
再一次,jarfile 本身运行良好。exe 从不打印“After Gdx.net.sendHttpRequest()”,也不会打印 HttpResponseListener 中的任何消息。
go - gobuffalo/packr 如何(为什么)在构建时运行?
我正在使用gobuffalo/packr将模板文件嵌入到我的 golang 二进制文件中。考虑这个简化的例子:
根据 packr 文档,必须运行该packr2
命令才能预处理模板文件,以便在常规 go-compiler 之后运行时可以读取和嵌入它们。
但是,我没有安装 packr repo 或二进制文件本身。golang 代码中的导入行是我机器上对 packr 的唯一引用。然而,运行go install
仍然会生成一个带有正确嵌入模板的二进制文件。
问: 这怎么可能?packr 在这里采用什么机制在常规构建时调用?
(最初我假设 packr 可能只是使用一些 init() 魔法来触发预处理。我还玩弄了 go-generate 注释来重现该行为。两个实验都不成功 - init() 函数不在构建时运行;和go-generate 需要被明确地调用。这让我相信,packr 在这里使用了一些更微妙的魔法。)