我正在尝试将 Windows 10 上的开发环境从 NetBeans 12.6 升级到 19,将 Java 11 升级到 17。此环境支持针对 Windows 和 Raspberry Pi 操作系统的应用程序。
升级 Java 和 NetBeans 后,从 Windows 对 Raspberry Pi 进行远程调试(断点等)不再起作用。从 Windows 在 Raspberry Pi 上远程运行该应用程序仍然有效。
当我在选择了 Raspberry Pi 平台和配置的情况下尝试在 NetBeans 中执行调试操作时,我收到以下消息:
“Java 15 已经移除了 Nashorn,你必须自己提供一个运行 JavaScript 的引擎。目前 GraalVM JavaScript 是首选。”
我知道 Nashorn 在 Java 15 中是远程的。我不明白的是该怎么办。
我认为 NetBeans 正在寻找托管 NetBeans 的 Windows 系统上的 Nashorn 替代品,而不是 Raspberry Pi,但我并不完全确定。
此 NetBeans 项目使用 Ant。我读到将 Ant 升级到最新版本(从 1.10.8 到 1.10 14)可能会解决此问题,但这不起作用。我还尝试在 Windows 10 上安装 GraalVM 并在 NetBeans 中启用选项 --experimental-options --js.nashorn-compat=true 。这也行不通。
我的目标是 Windows 10 上的 NetBeans 19 和 Java 17 能够在 Windows 10 和 Raspberry Pi 操作系统上运行和调试。早期版本的 NetBeans 和 Java 使这变得非常容易。
我并不致力于 Ant,但据我所知,Maven 和 Gradle 不提供类似的远程运行/调试功能。但如果可以解决我的问题,我愿意切换到不同的构建系统。如果有必要,我什至愿意考虑切换到不同的 IDE。
如果您有对我有帮助的信息,请尽可能具体。我的专长是应用程序领域和 Java 语言,而不是 NetBeans、Nashorn 等。
我正在发布我自己问题的答案,充其量只是一个糟糕的答案。我继续使用 NetBeans 19,但已恢复到 Java 11。
在这样做时,我最初遇到了远程调试的不同问题,该问题先前记录在https://github.com/apache/netbeans/issues/5979和https://issues.apache.org/jira/browse /NETBEANS-1425.
问题 #1425 中发布的解决方案(将 debug-args-line 的定义添加到 build.xml)确实在 Windows 10 上的 NetBeans 19 中为我解决了该问题。
因此我可以再次在 Windows 10 和 Raspberry Pi 操作系统上运行和调试我的应用程序。但我必须使用 Java 11(或者可能是任何 Java < 15 with Nashorn) to achieve that.