我有一个基于Eclipse 3.8.1的Mac RCP应用程序,它已经重组为APPL应用程序包。我在Mac上遇到了一个问题,我无法通过文件关联(在Finder中双击)打开文件,或者在程序关闭时通过拖放到Dock / app。应用程序启动但文件无法打开。
当我使用Apple Java 6时没有发生这种情况。我最近升级到Oracle Java 7并开始注意到这个问题。我使用-vm参数来定义捆绑的vm的位置。如果我删除了参数,Equinox会自动找到我的JDK7安装,问题就解决了。我不能依赖第三方JDK安装;我希望Equinox找到我的捆绑jre而不定义-vm参数。
Bug 374791表示3.8.1支持这一点。我需要在哪里放置我的jre目录才能工作?这是我的包的架构:
|-> configuration/config.ini
|-> Contents
|-> Info.plist
|-> MacOS
|-> RCPapp (launcher)
|-> RCPapp.ini
|-> Resources
|-> plugins/*.jar
这是我在ini文件中的启动器:
-startup
../../plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20120522-1813/eclipse_1503.so
--launcher.defaultAction
openFile
-clean
-vmargs
-Xmx768m
-Dosgi.locking=none
-Dosgi.requiredJavaVersion=1.7
-Dvisualvm.display.name=RCPapp
-Dserver_host=localhost
-Dcom.dnastar.debugPrint=false
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
The patch似乎表明java可执行文件应该位于“../../../jre/Contents/Home/jre/bin/”相对于启动器,所以我把我的“ Oracle jdk目录重命名为jre“沿着RCPapp.app并启动。我收到一个不兼容的JVM错误(JVM版本1.6.0_65不适用于此产品。版本:需要1.7或更高版本。)
Equinox启动器会自动识别捆绑的Java 7 jre,是否存在“神奇”的位置?