[英]Mac OS X (Mountain Lion) - Eclipse Application Uses Java 6
我正在嘗試在Mac OS X Mountain Lion(10.8.3)上運行Eclipse Java應用程序。
該應用程序中的捆綁軟件需要Java 7,並且我已經安裝了它。
編輯:我應該清楚這是一個打包並下載的基於Eclipse OSGi的應用程序,而不是我在本地構建的應用程序。
該應用程序一直無法啟動。 它把我轉回OSGI控制台並生成一個日志,其中包含幾個OSGI捆綁包的以下錯誤:
!SESSION 2013-12-06 08:10:23.406 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_45
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments: -keyring /Users/jasonbarrett/.eclipse_keyring -showlocation
Command-line arguments: -os macosx -ws cocoa -arch x86_64 -console -keyring /Users/jasonbarrett/.eclipse_keyring -showlocation
!ENTRY com.voxware.common.component 4 0 2013-12-06 08:10:24.314
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle "com.voxware.common.component_1.0.0.201310160110 [10]" could not be resolved. Reason: Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-1.7
該捆綁軟件需要Java 7,但是如您所見,java.version = 1.6.0_45。
Java 7在命令行上看起來不錯:
Jasons-MacBook-Pro:MacOS jasonbarrett$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
Jasons-MacBook-Pro:MacOS jasonbarrett$
Jasons-MacBook-Pro:MacOS jasonbarrett$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
Jasons-MacBook-Pro:MacOS jasonbarrett$
Jasons-MacBook-Pro:MacOS jasonbarrett$ java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b12)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
Jasons-MacBook-Pro:MacOS jasonbarrett$
Jasons-MacBook-Pro:MacOS jasonbarrett$ /usr/libexec/java_home -V
Matching Java Virtual Machines (5):
1.7.0_21, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
1.6.0_45-b06-451, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_45-b06-451, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_37-b06-434, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home
1.6.0_37-b06-434, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_37-b06-434.jdk/Contents/Home
我嘗試將啟動器的.ini文件中的-vm開關設置為Java 7可能位於的幾個位置,當前為:
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/jre/bin/java
-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
-console
-vmargs
-XstartOnFirstThread
-Dbundles.configuration.location=../../../configuration
-Dorg.eclipse.swt.internal.carbon.smallFonts
我也嘗試過:
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/bin/java
和
-vm
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
在OSGI控制台上,“ getprop”為我提供了以下內容:
eclipse.vm=/System/Library/Frameworks/JavaVM.framework
eclipse.vmargs=-XstartOnFirstThread
-Dbundles.configuration.location=../../../configuration
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Djava.class.path=/Applications/Shark/Server-All/Shark-Server-All.app/Contents/MacOS//../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
…
java.class.version=50.0
java.endorsed.dirs=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/endorsed
java.ext.dirs=/Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/ext
java.home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
java.io.tmpdir=/var/folders/t9/n8g9424j5kv2577mmpyg767m0000gn/T/
java.library.path=.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.6.0_45-b06-451-11M4406
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.6
java.vendor=Apple Inc.
java.vendor.url=http://www.apple.com/
java.vendor.url.bug=http://bugreport.apple.com/
java.version=1.6.0_45
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Apple Inc.
java.vm.version=20.45-b01-451
無論我如何嘗試為Java 7設置環境,應用程序啟動器都堅持使用Java6。我在其他地方看到在Mac上,它有效地忽略了-vm開關,並且始終將vm設置為:
eclipse.vm=/System/Library/Frameworks/JavaVM.framework
在我的系統上,這看起來像:
Jasons-MacBook-Pro:MacOS jasonbarrett$ ls -l /System/Library/Frameworks/JavaVM.framework
total 64
lrwxr-xr-x 1 root wheel 27 Apr 22 2013 Classes -> Versions/CurrentJDK/Classes
lrwxr-xr-x 1 root wheel 28 Apr 22 2013 Commands -> Versions/CurrentJDK/Commands
lrwxr-xr-x 1 root wheel 27 Apr 22 2013 Frameworks -> Versions/Current/Frameworks
lrwxr-xr-x 1 root wheel 24 Mar 5 2013 Headers -> Versions/Current/Headers
lrwxr-xr-x 1 root wheel 24 Apr 22 2013 Home -> Versions/CurrentJDK/Home
lrwxr-xr-x 1 root wheel 23 Apr 22 2013 JavaVM -> Versions/Current/JavaVM
lrwxr-xr-x 1 root wheel 29 Apr 22 2013 Libraries -> Versions/CurrentJDK/Libraries
lrwxr-xr-x 1 root wheel 26 Apr 22 2013 Resources -> Versions/Current/Resources
drwxr-xr-x 11 root wheel 374 Dec 4 14:02 Versions
Jasons-MacBook-Pro:MacOS jasonbarrett$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
lrwxr-xr-x 1 root wheel 59 Dec 4 14:02 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/
Jasons-MacBook-Pro:MacOS jasonbarrett$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions/Current
lrwxr-xr-x 1 root wheel 1 Apr 22 2013 /System/Library/Frameworks/JavaVM.framework/Versions/Current -> A
我了解到Java 7安裝在此“ A”目錄中,對嗎?
另外,eclipse應用程序啟動器從何處獲得其“ java.home”? 正如您在上面看到的那樣
java.home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
但這與我的JAVA_HOME或/ usr / libexec / java_home不同。
Jasons-MacBook-Pro:MacOS jasonbarrett$ which java
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/bin/java
有任何想法嗎? 非常感謝!
在Eclipse Preferences > Java > Installed JREs
查找,看看是否有Java 7 JRE。 如果缺少Java 7,請添加它。 您還可以選中復選框以將JRE設置為默認值。
在Run > Run Configurations
選擇應用程序的配置,然后在第一個選項卡上的“ Java運行時環境”部分中選擇Java 7 JRE(或執行環境)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.