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

无需重新安装即可使用多个版本

陈霄
2023-03-14

当我遇到伪造的问题时,我正在Raspberry Pi上设置一个改装的Minecraft服务器。我之前设置了一个运行1.17的香草服务器,这需要Java16,但我需要Java15或更低的伪造。我之前安装了Java16 JDK从https://adoptopenjdk.net/releases.htmlarm32架构,它运行得非常好。我试图安装服务器的伪造版本是1.16.5。我下载了安装程序,它运行得很好。它生成了forge-1.16.5-36.2.2.jar,我很确定这是服务器文件。每当我试图运行那个服务器jar文件时,就会出现这个问题。我得到的错误:

[15:26:15] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--gameDir, ., --launchTarget, fmlserver, --fml.forgeVersion, 36.2.2, --fml.mcpVersion, 20210115.111550, --fml.mcVersion, 1.16.5, --fml.forgeGroup, net.minecraftforge]
[15:26:15] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 8.0.9+86+master.3cf110c starting: java version 16.0.1 by AdoptOpenJDK
Exception in thread "main" java.lang.IllegalAccessError: class cpw.mods.modlauncher.SecureJarHandler (in unnamed module @0x1c911a1) cannot access class sun.security.util.ManifestEntryVerifier (in module java.base) because module java.base does not export sun.security.util to unnamed module @0x1c911a1
    at cpw.mods.modlauncher.SecureJarHandler.lambda$static$1(SecureJarHandler.java:41)
    at cpw.mods.modlauncher.api.LamdbaExceptionUtils.uncheck(LamdbaExceptionUtils.java:95)
    at cpw.mods.modlauncher.SecureJarHandler.<clinit>(SecureJarHandler.java:41)
    at cpw.mods.modlauncher.Launcher.lambda$new$6(Launcher.java:55)
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
    at cpw.mods.modlauncher.api.TypesafeMap.computeIfAbsent(TypesafeMap.java:52)
    at cpw.mods.modlauncher.api.TypesafeMap.computeIfAbsent(TypesafeMap.java:47)
    at cpw.mods.modlauncher.Environment.computePropertyIfAbsent(Environment.java:62)
    at cpw.mods.modlauncher.Launcher.<init>(Launcher.java:55)
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:66)
    at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63)
    at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60)
    at net.minecraftforge.server.ServerMain.main(ServerMain.java:57)

在研究了这个错误信息后,我发现大多数人说解决这个问题的唯一方法是降级到Java15。我真的不想这样做,因为我有一个1.17服务器运行,这需要Java16运行,所以如果我降级,我将无法运行它。我想知道是否有一种方法可以解决这个限制,在同一个设备上运行伪造服务器和香草1.17服务器。我将在下面添加一些额外的信息,这可能会有所帮助。

树莓派4B

确切的JDK文件:OpenJDK16U-JDK_arm_linux_hotspot_16.0.1_9。焦油广州

Rapberry Pi架构:arm32

设备操作系统:Raspberry Pi OS Lite(无窗口/显示管理器)

共有1个答案

归德厚
2023-03-14

如果您安装两个版本您应该能够指定哪个版本使用的第一个键入

ls /usr/lib/jvm/

这将列出您已安装的所有版本。对我来说,它显示了java-16-openjdk和java-8-openjdk。现在,您需要编辑服务器启动文件,并将其放入begging put/usr/bin/jvm/javaversion/bin/java,例如/usr/bin/jvm/java-16-openjdk/bin/java-Xmx1024M-Xms1024M-jar forge-1.16.5-36.2.2。jar。在某些版本中,路径是/usr/bin/jvm/javaversion/jre/bin/java

 类似资料:
  • 我一直在使用macOS 10.15.3在Flutter中编程,目标是iOS设备。今天我也尝试安装Android Studio,以扩展。安装没有错误,但在中没有子目录,这是一个问题,因为应该在中找到。 我注意到这一点是因为运行< code>flutter doctor给了我: 我尝试重新安装Android Studio(没有区别)。在线发布的其他解决方案都谈到了Java版本,所以我将JRE从1.7升

  • 我正在使用Spring实现一个多租户系统,每个租户都有自己的数据库。我把一切都准备好了。 我扩展了“AbstractRoutingDataSource”并覆盖了“determineCurrentLookupKey”,以确定通过用户域/租约使用哪个连接。 "AbstractRoutingDataSource"将在应用程序加载并在其中设置所有可能的数据库连接时实例化。 这是我的问题- 有没有办法向Ab

  • 如果我想在某个任意ObservableValue已更改但基础TableView数据未更改的情况下使TableView刷新(而不调用refresh()方法),那么对提取器回调方法进行自适应是否是一个好的解决方案? 这是一个使用TableView刷新()方法的实现示例。 当之前有人问过类似的问题时,@kleopatra表示“不,永远不要使用刷新。” 我有一个底层数据没有变化的情况,只是它在TableV

  • 问题内容: 我正在辩论应该如何学习。主要是,如果我从数据库中获取大量信息以将其加载到页面上,那么最好的方式是操纵页面而不需要重新加载。使用XML之类的东西是最好的选择,还是我应该使用的其他东西。我知道其中很多使用HTML Dom和XML Dom,但是我不想开始学习我不需要的东西。 问题答案: 您正在寻找的技术名称是AJAX,它代表异步Javascript和XML(尽管目前大多数AJAX使用JSON

  • 运行此命令时,无法安装Laravel 6.0: 我想安装,但它附带。 如何下载laravel的最新版本?我的版本是

  • 问题内容: 在我的应用程序中,我想使用: ,这需要 ,这需要 如何安装带有pip的多个版本来处理这种情况? 问题答案: 点不会帮助您。 您可以告诉它安装特定版本,但是它将覆盖另一个版本。另一方面,使用两个virtualenvs将使您在同一台计算机上安装两个版本,但不能同时使用它们。 最好的选择是手动安装这两个版本,方法是将它们以不同的名称放在Python路径中。 但是,如果您的两个库期望它们具有相