当前位置: 首页 > 知识库问答 >
问题:

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

齐胜涝
2023-03-14

我刚买了一台新电脑,决定开始尝试制作《我的世界》模型。超级新,不知道我在做什么,跟着导游走。

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,但我从来没有另一个版本。

如有任何帮助,不胜感激。

共有1个答案

颛孙铭
2023-03-14

免责声明:我对《我的世界》的deveiving mods不熟悉。为了提供帮助,我纯粹从Java开发的角度进行了阐述。

  1. 我认为您的第一个“错误”可能不是重复的,它实际上不是错误,而是警告,不会阻止程序运行。
  2. 第二个错误可能是阻止您继续前进的错误。这是个例外。它表示Java.lang.noClassDefFounderRor:jdk/nashorn/api/scripting/nashornScriptEngineFactory,这意味着Java找不到被引用的类定义。我在javadocs中查找了这个类,它显示sine:1.8u40,这意味着它只是在Java8 Update40中首次引入。如果您的Java8的更新版本低于40,那么您的代码将无法工作。

您可以通过在命令行键入java-version来检查java版本。在我的系统中,当我运行这个命令时,我得到

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)

另一件事是,您已经提到您正在使用Open JDK8。我的安装是Oracle Java,我在这里下载的。我不确定NashornScriptEngineFactory是否在您的Open JDK版本中可用,或者即使有可用,但该页面如何表明它已经实现。我不确定,但我认为它表明您可能需要OpenJDK9,但我不确定。

我希望我能帮上一点忙。祝你好运!

 类似资料:
  • 我在Eclipse(版本2019-06)中运行一个项目,它在我的java计算机上运行得很好--“OpenJDK 1.8.0_222” 然而,当我尝试tor在Eclipse(版本2021-3)上的另一台计算机上用java运行该项目时--“OpenJDK版本”1.8.0_292“,它不起作用! 我得到以下错误: 警告:发生非法反射访问操作警告:com.google.gson.internal.bind

  • 在尝试构建时,。我按照其他人的建议添加了,但仍然得到相同的错误。 有什么建议吗? pom.xml

  • 我试图使用Java9(JDK9)运行DMelt programs(http://jwork.org/DMelt/)程序,它给出了如下错误: 我该怎么修好它?我试图在脚本“dmelt.sh”的最后一行添加-illegal-access=permit(我在Linux中使用bash),但这并没有解决这个问题。我对此很沮丧。我经常使用这个程序,很长一段时间了。也许我永远不应该转到JDK9

  • 问题内容: 我正在尝试使用Java9(JDK9)运行DMelt程序(http://jwork.org/dmelt/)程序,它给了我以下错误: 我该如何解决?我试图将–illegal-access = permit添加到脚本“ dmelt.sh”的最后一行(我在Linux中使用bash),但这不能解决此问题。我对此感到非常沮丧。我经常使用此程序很长时间。也许我永远不应该转向JDK9 问题答案: 解决

  • 问题内容: 我已经安装了Java 和成功。所有进程运行良好 但是,每当我尝试执行任何命令(如收到此警告)时, 请帮助解决此问题。这是我的〜/ .bashrc文件配置 问题答案: 您不能对这些警告采取任何措施,这与拼图项目和更强的封装能力有关。 基本上有一个称为的类,它是称为“模块”的一部分。该模块“定义”了它输出的内容(其他人可以从中使用什么)以及向谁输出。这也用普通的英语表示这不是供公众使用的-

  • 如果能帮助我重写一些使用反射的Java代码,以便在Java10上删除编译器中的警告,我将不胜感激: 这就是所讨论的Java方法: 这是GitHub上的问题代码:https://github.com/librepdf/openpdf/blob/master/openpdf/src/main/java/com/lowagie/text/pdf/mappedrandomaccessfile.java#l