3

我正在尝试在 Linux 上将 Java 13 与 Eclipse 一起使用。我正在尝试创建一个可以在机器之间移动的“便携式”java+eclipse 文件夹。我已经从 https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html下载并解压缩了 Java 13

来自https://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/S-4.13RC1-201908281800/eclipse-SDK-4.13RC1-linux-gtk-x86_64.tar.gz的 Eclipse

在 eclipse 市场内,我已经安装了 https://download.eclipse.org/eclipse/updates/4.13-P-builds的所有部分

我已将 jdk 设置为 jdk13 文件夹。结果是 Eclipse 可以编译我的 Java13 代码,但不能运行它。当我尝试跑步时,我得到

[..]/EclipseJava13/jdk-13/bin/java: symbol lookup error: [..]/EclipseJava13/jdk-13/bin/java: undefined symbol: JLI_InitArgProcessing

我可以使用命令从命令行编译和运行 Java13 没有问题:

../../../jdk-13/bin/javac --release 13 --enable-preview main/Main.java
../../../jdk-13/bin/java --enable-preview main.Main

如果我剪切粘贴 eclipse 生成的 *.class 我可以使用命令运行它们

../../../jdk-13/bin/java --enable-preview main.Main

没问题。因此 Eclipse 正在识别 Java 13 并正确编译 Java 13 代码。

但是......当我尝试从 Eclipse 内部运行时,我得到了那个错误。我不确定下一步该怎么做。

4

2 回答 2

2

好的,我发现了这个问题。Eclipse 本身是一个 Java 程序。在我的机器上,我还使用 Java8 运行了 Java8 eclipse。Java8 在环境中预加载了包含符号 JLI_InitArgProcessing 的库版本。因此,当 Java 13 在同一环境中运行时,它试图重用此类库的缓存版本。如果我使用Java13启动eclipse,那么就没有问题了。

于 2019-09-23T00:53:50.460 回答
1

您不需要添加--release 13Java 13 Support for Eclipse 2019-09

它指的是Eclipse R-4.13-201909161045/,它确实具有官方Java 支持

该版本特别包括以下 Java 13 功能:

请参阅“维基 Java13/示例”。

https://wiki.eclipse.org/images/9/9b/FileAddJ13.png

于 2019-09-21T16:39:09.763 回答