0

我有一个适用于 Mac 的 Java 桌面应用程序,我们正在将 Java 与应用程序一起移植。问题是我们使用的 Java 是严格的Java6而不是严格的Java7(因为 Java7 没有-d32模式)。

于是我从苹果开发者网站上下载了Java6 jdk,并捆绑在了包中。这一切都运作良好。但是当我尝试在其他 Mac 上运行时,它会引发以下错误:

/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin
$ ./java -version
dyld: Library not loaded: @rpath/libjli.jnilib
Referenced from: /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/./java
Reason: image not found
Trace/BPT trap: 5

按照这个/Library/Java/JavaVirtualMachines/,它尝试在我移植的文件夹中而不是在我移植的文件夹中搜索相应的目录。我该如何解决这个问题?

我应该如何将 Java6 与应用程序一起移植。

其次,Java6我使用的是jdk,因为我找不到Java6的Jre。如果有人可以提供或分享 Jre6,将不胜感激。

4

1 回答 1

1

Apple 许可是否允许他们的 JRE 与第三方应用程序一起重新分发?

我认为你让事情变得比他们需要的更难。如果用户没有安装 Java 6(可能在 OS X 10.7 和 10.8 中),Mac OS 会在 Java 应用程序第一次尝试运行时自动提示用户下载并安装它。安装后,它将自动继续启动您的应用程序。

只需确保为 Java 6(例如,使用旧的 Mac Jar Bundler 应用程序或手动创建等效的 Info.plist)而不是 Java 7(例如,使用新的 Oracle appbundler.jar)捆绑您的应用程序。

于 2013-04-04T15:13:09.440 回答