【问题标题】:How to change NetBeans Java Project Runtime?如何更改 NetBeans Java 项目运行时?
【发布时间】:2016-01-28 21:04:14
【问题描述】:

如何更改项目运行时平台?
(标准 NetBeans [8.1] Java 项目 [Java 应用程序])

详情:

  • 将 Ubuntu 与 NetBeans 8.1 结合使用
  • 我已经安装了JDK 1.6、JDK 1.7 + JDK 1.8
  • 我的项目平台是 Java 6。
  • 我的系统默认 Java 是 Java 7。
  • NetBeans-IDE 是使用 Java 8 启动的。

当我通过 IDE(Run project)运行项目时,使用的是 Project-Platform(即 Java 6)。

我无法更改 运行时平台!
总是:项目平台

我尝试Manage Platforms...,但我仍然无法更改 Runtime Platform-ComboBox 的值。

编辑:
正如我在 cmets 中所写,我不想更改项目平台。 该项目应使用 Java 6 编译,但使用 Java 8 运行(点击运行项目时)。

我想要的是:
项目平台 = Java 6(用于编译),
Runtime-Platform = Java 8(用于运行)。

【问题讨论】:

  • 选择库类别并更改 Java 平台。您可能需要先在“管理平台”窗口中添加其他 JDK。
  • 我想避免这种情况。这是一个大项目,它应该完全兼容 java 6,但是当更改项目平台(到 Java > 6)并将 Src/Bin-Format 保持为 J6 时,这仍然可能导致运行时错误 ,当错误地使用来自 java > 6 的类时(如java.nio.file.Files)
  • 使用库类别集将 java 平台设置为 6 意味着它将使用 java 6 编译和运行。使用仅在 7 中可用的类将导致编译时错误,即使一个通过反射避免了在测试运行时您仍然只能访问 java 6 类。这与仅在源类别下设置源/二进制格式不同,您的担忧会更有意义。
  • @WillShackleford:是的,你是对的。但我想从 IDE(运行项目)内部使用 Java 8 运行我的 Java 6 项目。当我将 Java 平台从 Java 6 更改为 Java 8(对于这个项目)时,它使用 Java 8 来运行我的项目(但不好的副作用是,我可以访问 Java 8 类)。我想要的是:Project-Platform=Java 6(用于编译),Runtime-Platform=Java 8(用于运行)。

标签: java netbeans runtime netbeans-8


【解决方案1】:

如何更改项目运行时平台?

很遗憾,你不能。正如您所指出的,它的价值只能是项目平台。当然,这会引发一个问题“甚至拥有那个 Runtime Platform 字段有什么意义?”。

我怀疑它可能已(不明智地)添加到 GUI 中,以便在将来的某个时间实际选择不同的 JDK 来运行。有一个开放的错误报告:Bug 186747 - Can't Build and Run with Different Java Versions。

还值得注意的是,Run 屏幕的帮助文档并未提及 Runtime Platform 字段。我自己的观点是,应该删除该字段,直到它用于有用的目的为止。

我想要的是:Project-Platform = Java 6(用于编译), Runtime-Platform = Java 8(用于运行)。

不幸的是,这无法做到,如打开的错误所示。你现在能做的最好的事情是:

  • 在 NetBeans 中为 JDK 6 和 JDK 8 创建平台。
  • 在 Libraries 屏幕上将 Java Platform 设置为 JDK 1.6,并将 Source/Binary Format 设置为 JDK 6 在 Sources 屏幕上,然后构建以验证没有使用无效的 API。
  • 在 Libraries 屏幕上将 Java Platform 切换到 1.8,以在 1.8 下运行 1.6 代码。

我知道您不想这样做,但不幸的是,当前版本的 NetBeans (8.2) 中没有灵丹妙药。

另一种方法是仅使用 JDK 8 构建和运行,但包括 Animal Sniffer Maven plugin“用于根据 API 签名检查项目”,以验证您的 1.6 代码没有使用非法 API。当然,这只适用于 Maven 项目。

【讨论】:

  • 我不知道为什么我错过了你的答案...圣诞快乐!
【解决方案2】:

请看Netbeans Project Setup - Setting the Target JDK in a Project

您只需要在库选项中更改运行时平台即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多