我在我的MacBook(High Sierra,Java 11)上使用Eclipse(4.9.0)并且此错误有时显示,如果我在另一个应用程序上,错误会创建一个"堆栈",如截图所示,它每次回到Eclipse并关闭此错误都很烦人.有人可以帮我解决这个问题吗?
我刚刚在Windows 10上安装了OpenJDK版本的JDK 11通用可用性版本.我尝试在刚刚发布的Eclipse 2018-09(4.9.0)中将其作为JRE安装,并在Eclipse对话框中显示一条消息:
您选择了此版本的Eclipse JDT尚未完全支持的JRE.某些功能可能无法正常工作.
问题是什么?
更新:从Internet搜索,我发现一些代码似乎表明Eclipse有一个已知Java版本的内部列表,如果新的JDK版本的版本高于已知的Java版本,它会给出上述消息.(这就是我解释代码的方式.)真的吗?Eclipse发布了一个新的2018-09版本,就在JDK 11发布前几天,没有更新其已知Java版本列表以包含Java 11?
也许有人有更权威的答案.
我在Windows 10上运行Eclipse 2018-09(4.9.0).我正在使用Open JDK 11 GA.我有一个Maven项目被指定为使用Java 8源代码.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)
在命令行上使用Maven 3.5.3编译很好.使用Eclipse Eclipse 2018-09(4.9.0)编译也很好.
我将编译Java版本更改为Java 11:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
Run Code Online (Sandbox Code Playgroud)
使用Maven 3.5.3在命令行上仍然可以正常构建.但是在Eclipse 2018-09中,我在整个地方都遇到了错误:
'<>' operator is not allowed for source level below 1.7
Constructor references are allowed only at source level 1.8 or above
Default methods are allowed only at source level 1.8 or above
你明白了.
我已经习惯Alt+F5
在Eclipse中更新我的Maven项目(和子项目).我做了一个完整的清洁和重建.
因为这在命令行上使用Maven编译得很好,这必然是一个Eclipse问题,不是吗?当然,Eclipse不支持所有新的Java 11功能,但此代码没有Java 11特定功能.怎么了?
我在Windows 10上运行Eclipse 2018-09(4.9.0).我正在使用Open JDK 11 GA.我有一个使用Java 8兼容源代码的项目,可以使用Eclipse和Maven中的JDK编译.
我想使用新的Java 11功能,所以首先我将编译器源/目标从Java 8更改为Java 11.它仍然在命令行上使用Maven构建查找,但无法在Eclipse中编译(参见Eclipse 2018-09 won)编译Java 11源代码;认为它低于1.7).
所以我在Eclipse Marketplace中添加了"Java 11 Support for Eclipse 2018-09"插件.我重新启动了Eclipse并用于Alt+F5
刷新我的Maven项目.Eclipse然后尝试重建项目.
现在Eclipse进入了一个无限循环,在8X%完成到9X%完成之间跳跃,重复,无休止的错误如下:
!SESSION 2018-09-27 08:08:51.188 -----------------------------------------------
eclipse.buildId=4.9.0.I20180906-0745
java.version=11
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments: -product org.eclipse.epp.package.jee.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
This is a continuation of log file …\.metadata\.bak_0.log
Created Time: 2018-09-27 08:11:22.981
!ENTRY org.eclipse.core.resources 4 2 2018-09-27 08:11:22.981
!MESSAGE Problems occurred when invoking code from plug-in: …
Run Code Online (Sandbox Code Playgroud) 垂直滚动对我来说在 Eclipse 中工作得很好,水平滚动在其他任何地方都可以完美工作,但由于某种原因,在 Eclipse 中水平滚动不起作用。每当我想查看一行不适合可见区域的代码时,我都必须手动将光标移到项目底部并拖动滚动条。这不是一个大问题,但它确实变得非常烦人。有人知道怎么修这个东西吗?我使用的是 Eclipse 版本 2018-09 (4.9.0) 和 Windows 10 版本 1803,如果这有什么不同的话。
我正在迁移java项目使用JDK8来使用JDK 11然后发生了javax激活相关的错误.遵循Oracle的迁移指南,我看到java.activation该模块已从JDK 11中删除.
之后,我建议添加第三方**activation-1.0.2.jar*但仍然发生了错误?请提出有关问题的建议?和你能告诉我有关Java 8和Tomcat 9.0.12.编译器的Eclipse 2018-09的迁移源代码的使用经验的Java 11(服务器(4.9.0)
这是详细错误:
Caused by: java.lang.NoClassDefFoundError: javax/activation/DataSource
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3167)
at java.base/java.lang.Class.getDeclaredMethods(Class.java:2310)
at org.apache.catalina.util.Introspection.getDeclaredMethods(Introspection.java:133)
at org.apache.catalina.startup.WebAnnotationSet.loadMethodsAnnotation(WebAnnotationSet.java:285)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:138)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:328)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:768)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5007)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
Run Code Online (Sandbox Code Playgroud) jdk-11,Eclipse Photon 18-9,Windows 7,无错误从Java 6移植到Java 8的应用程序。只需尝试将Eclipse使用jdk-11多远。
JAVA_HOME指向jdk-11。Eclipse开始!但是后来事情变得奇怪了。可以将Java Build Path设置为jdk-11。但是,即使被迫处于类路径下,jre也会将自身更改为模块路径!编译器的遵从级别可以设置为Java 10!在项目Facets下,可以选择的最高Java版本是9!如果Java的合规性级别未降至9,则表明Java版本不匹配!使用eclipse进行构建会在100种情况下生成提到的false错误!但是,使用maven,source和target设置为java 11进行编译时,即使对jee 8进行编译,程序包构建也会成功终止。谁对此有更多了解?无论如何,我将切换回Java8。结论一年来出现了新的Java版本之后,仍然无法使用它们!很奇怪。