如果使用graalvm 22+执行netbeans,则netbreans中具有jaxb的项目将抛出错误

eaf3rand  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(165)

今天我把本地jdk从graalvm-ce-java17-22.2.0升级到了graalvm-ce-java19-22.3.0,因为运行时在我的调试会话中崩溃了几次。然后我想运行我的netbeans项目,但失败了,并显示了以下错误消息:

Error: Could not find or load main class FQN-OF-MAIN-CLASS in module jdk.internal.vm.compiler
C:\...\nbproject\build-impl.xml:1418: The following error occurred while executing this line:
C:\...\nbproject\build-impl.xml:924: The following error occurred while executing this line:
C:\...\nbproject\build-impl.xml:943: Java returned: 1
BUILD FAILED (total time: 2 seconds)

因为项目在升级前运行,我关闭了netbeans,删除了netbeans-cache,更新了环境变量以指向新的jdk(以前不需要),更改了netbeans conf,以便netbeans也使用新的jdk运行,并再次启动了netbeans。
同样的错误。在这个项目中创建另一个可运行的类或者执行一个单独的类而不是hole项目也会导致同样的错误。创建一个运行hello-world-file的新项目会成功。同样,在“有问题的”项目中,如果我点击clean-and-build并从命令行运行运行结果jar,那么它会运行得很好,但是netbeans似乎在IDE中调试/运行项目时出现问题。还从存储库中恢复了nbproject/build-impl.xmlnbproject/project.xml,但仍然得到同样的错误。也试图回到v22. 2,但现在我得到同样的错误也有。
所以我假设我在某个地方搞砸了,但是我不知道我应该从哪里开始找?错误指向我还没有接触过的ide生成的ant脚本,旧的项目和新创建的项目运行良好...
有什么主意吗?
网络豆15
Windows 10 22小时2个x64
graalvm-ce-Java语言19 -22.3.0
编辑1:
它似乎与源代码无关。从/src中删除了每个文件,并创建了一个新的类test/NewClass.java,其main也会产生该错误。
编辑2:
已尝试graalvm-ce-java17-22.3.0,但出现相同得错误.
编辑3:
可以追踪到创建一个新项目,用StandardJDK将Platform更改为1.8,添加一个JAXB-Binding,然后运行一个空的主类。用GraalVM将Platform更改为16/17/19会产生错误。恢复到1.8.会解决这个错误。当然,有问题的项目使用了JAXB,但它与GraalVM 16/17一起运行了相当长的一段时间,没有产生错误。有趣的是,Netbeans正在添加一个JAXB版本2. 3. 5,它在Maven存储库上似乎不是公共可用的。
编辑4:
JAXB本身似乎不是主要的问题,但它的相关。如果netbeans是用标准的JDK 1. 8或GraalVM 21. 1执行的,JAXB就可以在所有类型的项目中工作,而不管项目是用什么平台执行的。
但是,如果我将JDK netbeans的启动更改为GraalVM 22或更高版本,则包含JAXB的项目将产生上述错误。
由于Netbeans 15中的JAXB可以与GraalVM 21一起工作,但不能与较新的版本一起工作,我认为这可能是GraalVM而不是Netbeans的问题。

iklwldmw

iklwldmw1#

Netbeans是否支持JDK19?您可能希望尝试graalvm-ce-java17-22.3.0,即升级GraalVM版本,但仍保留JDK17行

相关问题