如何更改NetBeans Java项目的运行时?

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

enter image description here

详情:

  • 使用NetBeans 8.1和Ubuntu
  • 已安装JDK 1.6、JDK 1.7和JDK 1.8
  • 项目平台为Java 6。
  • 系统默认Java版本为Java 7。
  • NetBeans-IDE使用的Java版本为Java 8。

当我通过IDE运行项目(Run project)时,会使用项目平台(即Java 6)。

我无法更改运行时平台
它始终是:项目平台

我尝试了管理平台...,但我仍然无法更改运行时平台下拉框的值

编辑:
正如我在评论中所写,我不想更改项目平台。 该项目应使用Java 6编译,但在单击Run project时运行Java 8

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


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

1

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

很遗憾,您不能更改它。正如您所指出的那样,它的值只能是 项目平台。当然这引发了一个问题:“为什么要有那个运行时平台字段呢?”

我怀疑它可能是(不明智地)添加到GUI中的,以便在将来某个时候可以选择不同的JDK来运行。这方面有一个未解决的Bug报告:Bug 186747 - Can't Build and Run with Different Java Versions

值得注意的是,运行屏幕的帮助文档没有提到运行时平台字段。我的看法是,在它有用之前应该删除该字段。

我的需求是:项目平台 = Java 6(用于编译),运行时平台 = Java 8(用于运行)。

很遗憾,由于存在未解决的Bug,无法实现您的需求。目前您能做的最好的事情是:

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

我知道你不想这样做,但不幸的是,在当前版本的NetBeans(8.2)中没有银弹。

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


我不知道为什么错过了你的回答...圣诞快乐! - Ben

0

刚刚为Apache NetBeans 14经历了这种痛苦。我试图为树莓派设置远程调试。

只有在本地和远程版本的jdk匹配时才能正常工作。在我的情况下,我将它们都设置为17。

我本来希望可以更改本地机器上的默认jdk,但我无法确定如何更改。

我在本地机器上运行Ubuntu,所以可能无法更改平台(不确定)。继续前进。 更改运行平台


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接