检测到 JDK 版本:15.0.2 不在允许范围内 [1.8.0-101,1.8.9999]
Detected JDK Version: 15.0.2 is not in the allowed range [1.8.0-101,1.8.9999]
我遇到了以下已多次报告的问题(link1, link2, link3, , link5,等等)。但是我找不到明确的答案。
我刚刚在这个项目的模板中编辑了项目名称和基本信息example-imagej-command;
当我尝试在 eclipse 中使用 Maven 进行构建时;
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/cosacak/.p2/pool/plugins/org.eclipse.m2e.maven.runtime.slf4j.simple_1.16.0.20200610-1735/jars/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [file:/C:/Users/cosacak/eclipse/java-2020-12/eclipse/configuration/org.eclipse.osgi/5/0/.cp/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/cosacak/.p2/pool/plugins/org.eclipse.m2e.maven.runtime.slf4j.simple_1.16.0.20200610-1735/jars/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [file:/C:/Users/cosacak/eclipse/java-2020-12/eclipse/configuration/org.eclipse.osgi/5/0/.cp/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< de.kizillab.org:MyExamplePlugin >-------------------
[INFO] Building My Example Plugin 1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ MyExamplePlugin ---
[INFO] Adding ignore: module-info
[INFO] Adding ignore: META-INF/versions/*/module-info
[INFO] Adding ignore: org.apache.hadoop.yarn.*.package-info
[INFO] Adding ignore: org.apache.spark.unused.UnusedStubClass
[INFO] Adding ignore: org.hibernate.stat.ConcurrentStatisticsImpl
[INFO] Adding ignore: org.junit.runner.Runner
[INFO] Adding ignore: module-info
[WARNING] Rule 2: org.apache.maven.plugins.enforcer.RequireJavaVersion failed with message:
Detected JDK Version: 15.0.2 is not in the allowed range [1.8.0-101,1.8.9999].
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.330 s
[INFO] Finished at: 2021-03-31T02:49:00+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-rules) on project MyExamplePlugin: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
现在,如果我 运行 作为 Java 应用程序使用 eclipse;
log4j:WARN No appenders could be found for logger (org.bushe.swing.event.EventService).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[ERROR] Cannot create plugin: class='org.scijava.plugins.scripting.javascript.JavaScriptScriptLanguage', name='JavaScript', priority=0.0, enabled=true, pluginType=ScriptLanguage
java.lang.IllegalArgumentException: No such script engine: javascript
at org.scijava.script.AdaptedScriptLanguage.findFactory(AdaptedScriptLanguage.java:152)
at org.scijava.script.AdaptedScriptLanguage.<init>(AdaptedScriptLanguage.java:74)
at org.scijava.plugins.scripting.javascript.JavaScriptScriptLanguage.<init>(JavaScriptScriptLanguage.java:59)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350)
at java.base/java.lang.Class.newInstance(Class.java:645)
at org.scijava.plugin.PluginInfo.createInstance(PluginInfo.java:306)
at org.scijava.plugin.DefaultPluginService.createInstance(DefaultPluginService.java:237)
at org.scijava.plugin.DefaultPluginService.createInstances(DefaultPluginService.java:226)
at org.scijava.plugin.DefaultPluginService.createInstancesOfType(DefaultPluginService.java:217)
at org.scijava.plugin.AbstractSingletonService.initInstances(AbstractSingletonService.java:138)
at org.scijava.plugin.AbstractSingletonService.getInstances(AbstractSingletonService.java:77)
at org.scijava.plugin.SingletonService.lambda$initialize[=12=](SingletonService.java:97)
at org.scijava.object.ObjectIndex.resolvePending(ObjectIndex.java:388)
at org.scijava.object.ObjectIndex.get(ObjectIndex.java:133)
at org.scijava.object.DefaultObjectService.getObjects(DefaultObjectService.java:87)
at org.scijava.display.DefaultDisplayService.getDisplays(DefaultDisplayService.java:166)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:159)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:142)
at de.kizillab.org.MyExamplePlugin.main(MyExamplePlugin.java:85)
[ERROR]: Cannot locate JRE jar in C:\Users\cosacak\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.2.v20210201-0955\jre
[ERROR] Cannot create plugin: class='org.scijava.ui.swing.script.languagesupport.JavaLanguageSupportPlugin', priority=0.0, enabled=true, pluginType=LanguageSupportPlugin
java.lang.IllegalArgumentException: info cannot be null
at org.fife.rsta.ac.java.JarManager.addClassFileSource(JarManager.java:157)
at org.fife.rsta.ac.java.JarManager.addCurrentJreClassFileSource(JarManager.java:193)
at org.scijava.ui.swing.script.languagesupport.JavaLanguageSupportPlugin.<init>(JavaLanguageSupportPlugin.java:56)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350)
at java.base/java.lang.Class.newInstance(Class.java:645)
at org.scijava.plugin.PluginInfo.createInstance(PluginInfo.java:306)
at org.scijava.plugin.DefaultPluginService.createInstance(DefaultPluginService.java:237)
at org.scijava.plugin.DefaultPluginService.createInstances(DefaultPluginService.java:226)
at org.scijava.plugin.DefaultPluginService.createInstancesOfType(DefaultPluginService.java:217)
at org.scijava.plugin.AbstractSingletonService.initInstances(AbstractSingletonService.java:138)
at org.scijava.plugin.AbstractSingletonService.getInstances(AbstractSingletonService.java:77)
at org.scijava.plugin.SingletonService.lambda$initialize[=12=](SingletonService.java:97)
at org.scijava.object.ObjectIndex.resolvePending(ObjectIndex.java:388)
at org.scijava.object.ObjectIndex.get(ObjectIndex.java:133)
at org.scijava.object.DefaultObjectService.getObjects(DefaultObjectService.java:87)
at org.scijava.display.DefaultDisplayService.getDisplays(DefaultDisplayService.java:166)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:159)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:142)
at de.kizillab.org.MyExamplePlugin.main(MyExamplePlugin.java:85)
[INFO] Found 10 JHotDraw adapters.
作为 eclipse 的替代品,可以简单地在 linux 或任何安装了 Maven 的操作系统上使用 Maven。
linux 上的版本是:
>java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
maven 版本是:
>mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 1.8.0_282, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-60-generic", arch: "amd64", family: "unix"
现在只需 运行:
mvn compile
mvn package
解决问题。
如果我找到了 eclipse 或 netbeans 的解决方案,我也会 post 给出答案。
对于 window 用户,如果您有 Maven 项目,Maven 也可用并且可以用于 compile/package,就像在 Linux 上所做的那样(参见我上面的回答)。因此,如果在 eclipse 中构建项目时遇到上述问题并且没有 Linux,也可以在 windows 上使用 Maven。
现在我正在 eclipse 中编写 scripts/projects 并使用 Maven 命令 compile/package 如下;
从 here 下载 Maven zip 文件并将其解压缩到 windows 的任何位置,不必在您的项目文件夹中。在 PATH 中添加 maven \bin
。 bin文件解压后在例如apache-maven-3.6.3-bin\apache-maven-3.6.3\bin
文件夹中有maven.cmd
现在在 windows 中打开命令终端,使用 cd
导航到包含 pom.xml
文件的项目文件夹。就我而言;
cd Documents\eclipse-workspace\example-imagej-command-master
mvn compile
mvn package
它在 windows 上同样有效。
最后,我可以在 windows 上用 eclipse 解决问题。为了构建软件包,来自此 question 的解决方案适用于 Windows:
上的 eclipse
简而言之;
前往;
windows -> preferences -> Installed JREs
然后按Add -> Start VM
按Next
,按“Directory
”选择JRE主页为path2Fiji\Fiji\java\win64\jdk1.8.0_172
最后,来自斐济的selectjdk和“Apply and Close
”。
现在,eclipse 应该可以在 Windows 上构建 Maven 项目了。
我遇到了以下已多次报告的问题(link1, link2, link3,
我刚刚在这个项目的模板中编辑了项目名称和基本信息example-imagej-command;
当我尝试在 eclipse 中使用 Maven 进行构建时;
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/cosacak/.p2/pool/plugins/org.eclipse.m2e.maven.runtime.slf4j.simple_1.16.0.20200610-1735/jars/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [file:/C:/Users/cosacak/eclipse/java-2020-12/eclipse/configuration/org.eclipse.osgi/5/0/.cp/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/cosacak/.p2/pool/plugins/org.eclipse.m2e.maven.runtime.slf4j.simple_1.16.0.20200610-1735/jars/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [file:/C:/Users/cosacak/eclipse/java-2020-12/eclipse/configuration/org.eclipse.osgi/5/0/.cp/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< de.kizillab.org:MyExamplePlugin >-------------------
[INFO] Building My Example Plugin 1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-rules) @ MyExamplePlugin ---
[INFO] Adding ignore: module-info
[INFO] Adding ignore: META-INF/versions/*/module-info
[INFO] Adding ignore: org.apache.hadoop.yarn.*.package-info
[INFO] Adding ignore: org.apache.spark.unused.UnusedStubClass
[INFO] Adding ignore: org.hibernate.stat.ConcurrentStatisticsImpl
[INFO] Adding ignore: org.junit.runner.Runner
[INFO] Adding ignore: module-info
[WARNING] Rule 2: org.apache.maven.plugins.enforcer.RequireJavaVersion failed with message:
Detected JDK Version: 15.0.2 is not in the allowed range [1.8.0-101,1.8.9999].
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.330 s
[INFO] Finished at: 2021-03-31T02:49:00+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-rules) on project MyExamplePlugin: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
现在,如果我 运行 作为 Java 应用程序使用 eclipse;
log4j:WARN No appenders could be found for logger (org.bushe.swing.event.EventService).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[ERROR] Cannot create plugin: class='org.scijava.plugins.scripting.javascript.JavaScriptScriptLanguage', name='JavaScript', priority=0.0, enabled=true, pluginType=ScriptLanguage
java.lang.IllegalArgumentException: No such script engine: javascript
at org.scijava.script.AdaptedScriptLanguage.findFactory(AdaptedScriptLanguage.java:152)
at org.scijava.script.AdaptedScriptLanguage.<init>(AdaptedScriptLanguage.java:74)
at org.scijava.plugins.scripting.javascript.JavaScriptScriptLanguage.<init>(JavaScriptScriptLanguage.java:59)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350)
at java.base/java.lang.Class.newInstance(Class.java:645)
at org.scijava.plugin.PluginInfo.createInstance(PluginInfo.java:306)
at org.scijava.plugin.DefaultPluginService.createInstance(DefaultPluginService.java:237)
at org.scijava.plugin.DefaultPluginService.createInstances(DefaultPluginService.java:226)
at org.scijava.plugin.DefaultPluginService.createInstancesOfType(DefaultPluginService.java:217)
at org.scijava.plugin.AbstractSingletonService.initInstances(AbstractSingletonService.java:138)
at org.scijava.plugin.AbstractSingletonService.getInstances(AbstractSingletonService.java:77)
at org.scijava.plugin.SingletonService.lambda$initialize[=12=](SingletonService.java:97)
at org.scijava.object.ObjectIndex.resolvePending(ObjectIndex.java:388)
at org.scijava.object.ObjectIndex.get(ObjectIndex.java:133)
at org.scijava.object.DefaultObjectService.getObjects(DefaultObjectService.java:87)
at org.scijava.display.DefaultDisplayService.getDisplays(DefaultDisplayService.java:166)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:159)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:142)
at de.kizillab.org.MyExamplePlugin.main(MyExamplePlugin.java:85)
[ERROR]: Cannot locate JRE jar in C:\Users\cosacak\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.2.v20210201-0955\jre
[ERROR] Cannot create plugin: class='org.scijava.ui.swing.script.languagesupport.JavaLanguageSupportPlugin', priority=0.0, enabled=true, pluginType=LanguageSupportPlugin
java.lang.IllegalArgumentException: info cannot be null
at org.fife.rsta.ac.java.JarManager.addClassFileSource(JarManager.java:157)
at org.fife.rsta.ac.java.JarManager.addCurrentJreClassFileSource(JarManager.java:193)
at org.scijava.ui.swing.script.languagesupport.JavaLanguageSupportPlugin.<init>(JavaLanguageSupportPlugin.java:56)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:350)
at java.base/java.lang.Class.newInstance(Class.java:645)
at org.scijava.plugin.PluginInfo.createInstance(PluginInfo.java:306)
at org.scijava.plugin.DefaultPluginService.createInstance(DefaultPluginService.java:237)
at org.scijava.plugin.DefaultPluginService.createInstances(DefaultPluginService.java:226)
at org.scijava.plugin.DefaultPluginService.createInstancesOfType(DefaultPluginService.java:217)
at org.scijava.plugin.AbstractSingletonService.initInstances(AbstractSingletonService.java:138)
at org.scijava.plugin.AbstractSingletonService.getInstances(AbstractSingletonService.java:77)
at org.scijava.plugin.SingletonService.lambda$initialize[=12=](SingletonService.java:97)
at org.scijava.object.ObjectIndex.resolvePending(ObjectIndex.java:388)
at org.scijava.object.ObjectIndex.get(ObjectIndex.java:133)
at org.scijava.object.DefaultObjectService.getObjects(DefaultObjectService.java:87)
at org.scijava.display.DefaultDisplayService.getDisplays(DefaultDisplayService.java:166)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:159)
at org.scijava.ui.DefaultUIService.showUI(DefaultUIService.java:142)
at de.kizillab.org.MyExamplePlugin.main(MyExamplePlugin.java:85)
[INFO] Found 10 JHotDraw adapters.
作为 eclipse 的替代品,可以简单地在 linux 或任何安装了 Maven 的操作系统上使用 Maven。
linux 上的版本是:
>java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
maven 版本是:
>mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 1.8.0_282, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-60-generic", arch: "amd64", family: "unix"
现在只需 运行:
mvn compile
mvn package
解决问题。
如果我找到了 eclipse 或 netbeans 的解决方案,我也会 post 给出答案。
对于 window 用户,如果您有 Maven 项目,Maven 也可用并且可以用于 compile/package,就像在 Linux 上所做的那样(参见我上面的回答)。因此,如果在 eclipse 中构建项目时遇到上述问题并且没有 Linux,也可以在 windows 上使用 Maven。
现在我正在 eclipse 中编写 scripts/projects 并使用 Maven 命令 compile/package 如下;
从 here 下载 Maven zip 文件并将其解压缩到 windows 的任何位置,不必在您的项目文件夹中。在 PATH 中添加 maven \bin
。 bin文件解压后在例如apache-maven-3.6.3-bin\apache-maven-3.6.3\bin
文件夹中有maven.cmd
现在在 windows 中打开命令终端,使用 cd
导航到包含 pom.xml
文件的项目文件夹。就我而言;
cd Documents\eclipse-workspace\example-imagej-command-master
mvn compile
mvn package
它在 windows 上同样有效。
最后,我可以在 windows 上用 eclipse 解决问题。为了构建软件包,来自此 question 的解决方案适用于 Windows:
上的 eclipse简而言之;
前往;
windows -> preferences -> Installed JREs
然后按Add -> Start VM
按Next
,按“Directory
”选择JRE主页为path2Fiji\Fiji\java\win64\jdk1.8.0_172
最后,来自斐济的selectjdk和“Apply and Close
”。
现在,eclipse 应该可以在 Windows 上构建 Maven 项目了。