“警告:发生了非法的反射访问操作”,安装了jdk 8

0kjbasz6  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(899)

我刚买了一台新电脑,决定开始尝试创建minecraft Mod。超级新,不知道我在做什么,跟着导游走。
我下载了open jdk 8,下载了eclipse,下载并解压了forge jdk工具包,将项目作为一个现有的gradle项目导入,运行geneclipseruns gradle任务,导入runclient和runserver的启动配置,确保我在环境中运行了正确的minecraft版本,去运行项目,我总是得到以下错误。

2021-01-05 20:37:26,828 main WARN Advanced terminal features are not available in this environment
[20:37:26] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--gameDir, ., --launchTarget, fmluserdevserver, --fml.mcpVersion, 20201102.104115, --fml.mcVersion, 1.16.4, --fml.forgeGroup, net.minecraftforge, --fml.forgeVersion, 35.1.4]
[20:37:26] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 8.0.6+85+master.325de55 starting: java version 15.0.1 by Oracle Corporation
[20:37:27] [main/DEBUG] [cp.mo.mo.LaunchServiceHandler/MODLAUNCHER]: Found launch services [minecraft,fmldevdata,fmldevclient,fmldevserver,fmluserdevserver,fmluserdevdata,testharness,fmlclient,fmluserdevclient,fmlserver]
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by cpw.mods.modlauncher.SecureJarHandler (file:/C:/Users/Shelby/.gradle/caches/modules-2/files-2.1/cpw.mods/modlauncher/8.0.6/70155a85837ebb17d36815ab4d12a3b464963df8/modlauncher-8.0.6.jar) to field java.util.jar.Manifest.jv
WARNING: Please consider reporting this to the maintainers of cpw.mods.modlauncher.SecureJarHandler
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[20:37:27] [main/DEBUG] [cp.mo.mo.NameMappingServiceHandler/MODLAUNCHER]: Found naming services : [srgtomcp]
[20:37:27] [main/DEBUG] [cp.mo.mo.LaunchPluginHandler/MODLAUNCHER]: Found launch plugins: [mixin,eventbus,object_holder_definalize,runtime_enum_extender,capability_inject_definalize,accesstransformer,runtimedistcleaner]
[20:37:27] [main/DEBUG] [cp.mo.mo.TransformationServicesHandler/MODLAUNCHER]: Discovering transformation services
...

此外,还有一个错误:

...
[20:37:28] [main/DEBUG] [ne.mi.fm.lo.ModSorter/LOADING]: Found 2 mandatory requirements
[20:37:28] [main/DEBUG] [ne.mi.fm.lo.ModSorter/LOADING]: Found 0 mandatory mod requirements missing
Exception in thread "main" [20:37:28] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1048]: java.lang.NoClassDefFoundError: jdk/nashorn/api/scripting/NashornScriptEngineFactory
[20:37:28] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1048]:   at net.minecraftforge.coremod.CoreModEngine.loadCoreMod(CoreModEngine.java:48)
[20:37:28] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1048]:   at net.minecraftforge.coremod.CoreModProvider.addCoreMod(CoreModProvider.java:12)
[20:37:28] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1048]:   at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
...

为了让它正常工作,我已经花了一个小时的时间,卸载了所有的东西,重新安装了所有的东西,重新启动了我的电脑,删除了jdk环境,手动更改了启动配置,任何我能想到的东西。
我在google上找到的所有其他示例都说,我不需要以后安装jdk,我必须安装jdk8,但我从来没有安装过其他版本。
任何帮助都将不胜感激。

57hvy0tb

57hvy0tb1#

免责声明:我不熟悉为minecraft开发mods。在试图提供帮助的过程中,我纯粹是从java开发的Angular 出发。
我认为你的第一个“错误”可能是不相关的,它实际上不是一个错误,它是一个警告,它不会阻止程序运行。
第二个错误可能是阻止您继续的错误。这是个例外。上面写着 java.lang.NoClassDefFoundError: jdk/nashorn/api/scripting/NashornScriptEngineFactory 这意味着java找不到被引用的类定义。我在javadocs中查找了这个类,它说 Since: 1.8u40 这意味着它只是在Java8Update40中首次引入。如果您有更新版本低于40的Java8,那么您的代码将无法工作。
您可以通过键入 java -version 在命令行。在我的系统上,当我运行这个命令时

PS C:\> java -version                                                                                                   
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

这说明我正在运行java8(1.8)update261
另一件事是您提到您正在使用openjdk8。我安装的是oraclejava,我在这里下载的。我不确定 NashornScriptEngineFactory 在您的openjdk版本中是可用的,或者即使它是可用的,但是这个页面表明它已经实现了。我不确定,但我想它说你可能需要openjdk9,但我不确定。
我希望我能帮一点忙。祝你好运!

相关问题