我正在尝试将 jWrapper 与 Java 8 一起使用,但我不明白如何设置 JRE。
作为我在 JWrapper 配置 .xml 文件上指定的测试(我在 Mac OS X 10.8.5 上):
<Mac64JRE>/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/</Mac64JRE>
但这以这样的异常结束:
[Archive] Adding file (99376) (Contents/Home/bin/jar) /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/jar
**********************************
* BUILD FAILED *
**********************************
** Reason: (see stacktrace below)
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:128)
at java.util.jar.JarFile.<init>(JarFile.java:136)
有些人显然已经设法使用 Java 8,但我无法找到任何细节,所以我正在寻找一个详细说明......
编辑:更多信息
今天早上我重命名了文件:
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/jar
至
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/jar-orig
并且看起来 JWrapper 然后只是跳过文件并且构建完成并且一切看起来都很好。
但是,当我尝试启动生成的 64 位 Mac OS X .app 文件时,它会在几十秒后失败且没有错误消息。
看着登录:
/Users/nyholku/Library/Application Support/JWrapper-MyApp/logs
我看到启动失败:
+0 [ExtractArchiveFile] Extracting Contents/MacOS/libjli.dylib (::0)
+0 [ExtractArchiveFile] Extracting to /Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/MacOS/libjli.dylib
+0 [ChMod] Executing chmod -R 755 "/Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/MacOS/libjli.dylib"
+2 [ExtractArchiveFile] Extracting Contents/Home/db/lib/derby.jar (::2)
+1 [ExtractArchiveFile] Extracting to /Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/Home/db/lib/derby.jar.p2
+9 [ChMod] Executing chmod -R 755 "/Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/Home/db/lib/derby.jar.p2"
+4 [Spawner] Creating spawner
+0 [Spawner] Setting spawner exe to /Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/Home/bin/unpack200
+0 [Spawner] Appended argument /Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/Home/bin/unpack200
+0 [Spawner] Appended argument /Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/Home/db/lib/derby.jar.p2
+1 [Spawner] Appended argument /Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/Home/db/lib/derby.jar
+0 Launch Error 13.
+0 [ExtractArchiveFile] ERROR: unpack200 (/Users/nyholku/Library/Application Support/JWrapper-MyApp/JWrapperTemp-1414997025-7-app/Contents/Home/db/lib/derby.jar) does not exist!
回到基本,我删除了与 JWrapper 相关的所有内容并从头开始:
-下载 JWrapper -下载示例应用程序 -下载 jre-17 包
将它们全部放在一个目录中,执行:
java -Xmx2048m -jar jwrapper-00031607960.jar sampleapp/jwrap
构建成功完成,但 .dmg 中的 64 位 Mac .app 无法启动,日志显示:
+1 [ChMod] Executing chmod -R 755 "/Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Resources/zh_TW.lproj/Localizable.strings"
+2 [ExtractArchiveFile] Extracting Contents/Home/lib/alt-rt.jar (::2)
+1 [ExtractArchiveFile] Extracting to /Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Home/lib/alt-rt.jar.p2
+0 [ChMod] Executing chmod -R 755 "/Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Home/lib/alt-rt.jar.p2"
+3 [Spawner] Creating spawner
+0 [Spawner] Setting spawner exe to /Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Home/bin/unpack200
+0 [Spawner] Appended argument /Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Home/bin/unpack200
+0 [Spawner] Appended argument /Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Home/lib/alt-rt.jar.p2
+1 [Spawner] Appended argument /Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Home/lib/alt-rt.jar
+0 Launch Error 13.
+0 [ExtractArchiveFile] ERROR: unpack200 (/Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Home/lib/alt-rt.jar) does not exist!
因此,即使是他们自己的 samppleapp 上的开箱即用 JWrapper 在这台机器上也失败了。
我推测错误“启动错误 13”是“权限被拒绝”,因为在“unpack200”上执行“ls”会给出:
-rw-r--r-- 1 nyholku staff 103216 4 Nov 07:05 /Users/nyholku/Library/Application Support/JWrapper-SampleApp/JWrapperTemp-1415077515-5-app/Contents/Home/bin/unpack200
此外,看起来有点怀疑(再次基于日志的推测)显然有三个参数('[Spawner] Appended argument ...')给了'unpack200',因为它只需要两个。实际上,尝试从命令行解包(只是为了调试)可以使用最后两个参数,但不能使用三个参数。
我很难相信 JWrapper 中会有这种错误,所以我一定是做错了什么,或者我的系统有问题。也许需要检查磁盘权限或其他东西。