1

我正在尝试将 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 中会有这种错误,所以我一定是做错了什么,或者我的系统有问题。也许需要检查磁盘权限或其他东西。

4

1 回答 1

2

重新启动到我的 Maverick 分区,一切正常!

重新启动回到山狮,一切正常!

我的结论:一些失败的编译/启动尝试留下了一些垃圾,阻止了 JWrapper 工作。

作为 Mac 用户,我不习惯重新启动;)因此我没有尝试过!

猜想,因为我已经重新启动,我来不及验证:

JWrapper 在 Mac 上使用 .dmg 磁盘映像,我在进行测试时可能没有弹出或弹出失败,所以可能 JWrapper 启动器试图从错误的磁盘映像加载内容……我经常在 Mac OS 上看到这种情况即使磁盘映像在桌面上不可见,您仍然可以看到它安装在“/卷”中

最后注。当我说一切正常时,我并不是在暗示 Java 8 对我有用,但现在示例应用程序可以正常工作,我认为是时候结束这个问题了。

于 2014-11-04T05:46:18.167 回答