简体   繁体   English

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

[英]Mac OS X (Mountain Lion) - Eclipse Application Uses Java 6

I'm trying to run an Eclipse Java application on Mac OS X Mountain Lion (10.8.3). 我正在尝试在Mac OS X Mountain Lion(10.8.3)上运行Eclipse Java应用程序。

The bundles in the application require Java 7 and I have installed it. 该应用程序中的捆绑软件需要Java 7,并且我已经安装了它。

EDIT: I should be clear that this is a packaged and downloaded Eclipse OSGi-based application, not one I've built locally. 编辑:我应该清楚这是一个打包并下载的基于Eclipse OSGi的应用程序,而不是我在本地构建的应用程序。

The application keeps failing to launch. 该应用程序一直无法启动。 It dumps me back to the OSGI console and generates a log which contains the following error for several OSGI bundles: 它把我转回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

The bundle wants Java 7 but as you can see, java.version=1.6.0_45. 该捆绑软件需要Java 7,但是如您所见,java.version = 1.6.0_45。

Java 7 looks OK at the command line: 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

I've tried setting the -vm switch in the launcher's .ini file to several locations where Java 7 might be, currently it's: 我尝试将启动器的.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

I've also tried: 我也尝试过:

-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/bin/java

and

-vm
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

At the OSGI console, 'getprop' gives me the following: 在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

No matter how I try to set up my environment for Java 7, the app launcher insists on using Java 6. I read elsewhere that on the Mac, it effectively ignores the -vm switch and always sets the vm to: 无论我如何尝试为Java 7设置环境,应用程序启动器都坚持使用Java6。我在其他地方看到在Mac上,它有效地忽略了-vm开关,并且始终将vm设置为:

eclipse.vm=/System/Library/Frameworks/JavaVM.framework

On my system, this looks like: 在我的系统上,这看起来像:

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

I was given to understand that Java 7 is installed in this 'A' directory, is that true? 我了解到Java 7安装在此“ A”目录中,对吗?

Also, where does the eclipse application launcher get its 'java.home' from? 另外,eclipse应用程序启动器从何处获得其“ java.home”? As you can see above, it's 正如您在上面看到的那样

java.home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

But that doesn't agree with my JAVA_HOME or /usr/libexec/java_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

Any ideas? 有任何想法吗? Thanks a lot! 非常感谢!

Look in the Eclipse Preferences > Java > Installed JREs and see if you have a Java 7 JRE. 在Eclipse Preferences > Java > Installed JREs查找,看看是否有Java 7 JRE。 Add Java 7 if it is missing. 如果缺少Java 7,请添加它。 You can also select the check box to make the JRE the default. 您还可以选中复选框以将JRE设置为默认值。

In Run > Run Configurations choose the configuration for your application and on the first tab select the Java 7 JRE (or execution environment) in the Java Runtime Environment section. Run > Run Configurations选择应用程序的配置,然后在第一个选项卡上的“ Java运行时环境”部分中选择Java 7 JRE(或执行环境)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM