我有一个适用于Mac的Java桌面应用程序,我们正在将Java与应用程序一起移植。问题是,我们使用的Java严格是Java6
而不是Java7
(因为Java7没有-d32
模式)。
所以我从苹果开发者site下载了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
根据this,它会尝试在/Library/Java/JavaVirtualMachines/
处搜索相应的目录,而不是在我移植的文件夹中搜索。我该如何解决这个问题?
我应该如何将Java6与应用程序一起移植。
其次,我使用的Java6
是jdk,因为我找不到Java6的Jre。如果有人可以提供或分享Jre6,将不胜感激。
答案 0 :(得分: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)。