簡體   English   中英

Mac OS X(Mountain Lion)-Eclipse應用程序使用Java 6

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM