【问题标题】:java13 and Eclipse strange behaviourjava13和Eclipse的奇怪行为
【发布时间】:2019-09-20 06:44:42
【问题描述】:

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

Eclipse 来自 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 市场内,我已经安装了 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 内部运行时,我得到了那个错误。 我不确定下一步该怎么做。

【问题讨论】:

  • 您可以查看此链接 - stackoverflow.com/questions/53675535/…
  • 请显示 Eclipse 使用的命令行:在运行配置中有一个 显示命令行 按钮。
  • 请注意,您已经安装了 2019-09 (4.13) 的 RC1 版本。之后发布了 RC2 和 RC2a - 最终版本在 download.eclipse.org/eclipse/downloads/drops4/…
  • 这里是显示命令行输出:/[..]/EclipseJava13/jdk-13/bin/java -ea --enable-preview -Dfile.encoding=UTF-8 -p /[ ..]/EclipseJava13/workspaceTest/TestSwitch/bin --enable-preview -m testSwitch/main.Main 当然,我试图从控制台“运行”这条确切的行,并且......它没有问题。不知何故,eclipse 在具有不同权限的环境中运行 Java
  • 我也按照greg的建议重新安装了eclipse,但是一点变化都没有。

标签: java eclipse java-13 eclipse-2019-09


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您应该不需要用“Java 13 Support for Eclipse 2019-09”添加--release 13

    指的是Eclipse R-4.13-201909161045/,确实有官方的Java support

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

    参见“Wiki Java13/Examples”。

    【讨论】:

    • 关于“您不需要添加--release 13”的小说明:它实际上比这更严重。您绝对不能将 --release 13 添加到 Default VM Arguments。如果这样做,您将在控制台窗口中收到错误 "Unrecognized option: --release",并且您的 Java 13 应用程序将无法运行。 Java 13 预览功能在默认虚拟机参数中没有指定任何内容就可以正常工作。
    • 我对这个答案很困惑:从命令行我需要添加 --release 13 --enable-preview 或 -source 13 --enable-preview 以使其编译。无论如何,我的问题是运行它,编译正常。
    • @MarcoServetto 这个答案是说通过使用新发布的 Eclipse R-4.13-201909161045/,您不需要添加任何 13 选项,因为默认情况下它将与 Java 13 兼容。正式。不是“作为预览”。但我看到你发现了一个 PATH 问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多