【问题标题】:Java .jar app doesn't start on Mac Os X Snow LeopardJava .jar 应用程序无法在 Mac Os X Snow Leopard 上启动
【发布时间】:2012-11-18 21:14:33
【问题描述】:

我正在使用 NetBeans 7.2 和 JDK 7 开发一个 Java 应用程序。它设置为使用系统外观。它在 Windows 上运行良好,但是当我在 Mac OS X Snow Leopard 上双击 jar 时,我得到:

The Java JAR File could not be launched, check console for possible error messages.

显然 Snow Leopard 正在使用 JRE 6 并且无法更新。我认为 Java 就是“一次编写,随处运行”,但事实并非如此。

这里出了什么问题,我可以让我的应用在这台 Mac 上运行吗?

【问题讨论】:

  • 我认为 Java 就是“一次编写,随处运行”,但事实并非如此。 ... 是这样,但不是 if你降级你的JDK。要么用 JDK 6 编译它,要么在你的 Mac 上手动下载 JDK7
  • @Robin 那么这是否意味着 JDK 6 与 JRE 6 等兼容? JDK和JRE是这样关联的吗?如果我这样做,它将与 Snow Leopard 兼容,对,但它可能与旧版本的 Mac 不兼容。如何确保我的应用程序可以在每个版本的 WIndows 和 Macs 上运行?我还使用了一些 JDK 6 不支持的语句,例如“multi-catch”。
  • 我如何确保我的应用程序可以在每个版本的 WIndows 和 Macs 上运行 这是不可能的。通常,您需要一个应用程序,它至少需要 Java 版本 x,然后您使用版本 x 编译它。例如,当您使用 JDK7 开发/编译时,您可能正在使用 JDK6 上不可用的 api,因此您不能指望它能够工作
  • 您是否设置了 Mac OS X 上不可用的 L&F?
  • @trashgod 设置为使用L&F系统,所以非常好用。

标签: java macos swing osx-snow-leopard compatibility


【解决方案1】:

您猜测,您已经使用 Java 7 编译了这些类,并且您正尝试使用 Java 6 运行时运行它们。检查控制台输出以查看:java -jar your.jar

在 NetBeans Tools > Java Platforms 中,验证 JDK 1.6 是否可用。在File > Project Properties > Sources > Source/Binary Format 中,选择JDK 1.6。在File > Project Properties > Libraries > Java Platform,选择JDK 1.6。

附录:你还没有解释源和平台版本之间的联系。

Netbeans 使用这些设置来操作 Java 编译器 javac-source-target 选项,这说明了更多信息。在命令行中,-bootclasspath 可用于确保在针对早期版本时不会无意中使用更高版本的库类。这张Source and Target Options 表格概述了一些重要功能的历史。

【讨论】:

  • 我将 JDK 6 设置为源格式,但 Libraries 中没有 JDK 1.6。你只是告诉我该怎么做,没有任何解释。如果您能解释这些事物之间的关系,从而解释导致问题的原因,而不是仅仅解决问题,我和其他想了解事物如何真正运作的人会很感激。
  • 更改源格式有帮助吗?控制台显示什么。如果您的机器上有 JDK 1.6,您可以从 Java Platform 对话框中添加它。在命令行中,使用 -sourcetarget 选项。
  • 是的,但是你还没有解释源和平台版本之间的联系。
猜你喜欢
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
相关资源
最近更新 更多