2403
服务端原先使用java8(jdk1.8.0_171)

配置过环境变量,全部指向jdk1.8.0_171

在后续安装了java11、java17后cmd中java -version版本被强制指定为java17,所有低版本服务端全部无法开启
显示
A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at cpw.mods.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:43)
        at cpw.mods.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:12)
Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
        at net.minecraft.launchwrapper.Launch.<init>(Launch.java:34)
        at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
        ... 6 more



推测是因为java版本错误导致的,有办法强制启动bat设置服务端可以使用的java吗?试过添加:
SET JavaVersion=".\jdk1.8.0_171\bin\java.exe"
这个启动参数,无效。

这个问题很烦,有效的解决方法试过一个是彻底卸载几个高版本java并重装java8,但是那些高版本java我玩整合包都要用到。


SunsetTown
使用绝对路径
"Java路径"


2403
SunsetTown 发表于 2023-10-8 10:28
在服务器启动bat中使用绝对路径
java.exe 改为 "Java8的路径"
例如:"C:\Program Files\Java\jre-1.8\bin\ja ...

测试了,无效。这个java17很迷,一装上就给自己设置了极高的优先级,无论环境变量的设置还是启动器里用绝对路径全部无效。
我先试了绝对路径无效,才用了本目录路径(把c盘的java复制一份丢到服务端目录),无效。

刚刚测试了把java17通过控制面板卸载后所有设置立即恢复正常了。java-version版本变回了以前设置的1.8.0,启动器也能和以前一样自动选择合适版本的java,无需进行设置,迷。。

SunsetTown
2403 发表于 2023-10-8 10:36
测试了,无效。这个java17很迷,一装上就给自己设置了极高的优先级,无论环境变量的设置还是启动器里用绝 ...

我看看你的bat设置

2403
SunsetTown 发表于 2023-10-8 10:37
我看看你的bat设置

@echo off
set a=0
:restart
title 末日求生 重启次数:%a%
::----设置开服JAVA版本
SET JavaVersion="C:\Program Files\Java\jre1.8.0_171\bin"

java -Xms2000M -Xmx2000M -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -jar iserver.jar
echo 服务器已经崩溃/关闭
rem 延迟5秒钟
ping 127.0.0.1>nul
set /a a=%a%+1
goto restart

SunsetTown
2403 发表于 2023-10-8 10:39
@echo off
set a=0
:restart
  1. [url=home.php?mod=space&uid=39305]@echo[/url] off
  2. set a=0
  3. :restart
  4. title 末日求生 重启次数:%a%
  5. ::----设置开服JAVA版本
  6. SET JavaVersion="C:\Program Files\Java\jre1.8.0_171\bin\java.exe"

  7. java -Xms2000M -Xmx2000M -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -jar iserver.jar
  8. echo 服务器已经崩溃/关闭
  9. rem 延迟5秒钟
  10. ping 127.0.0.1>nul
  11. set /a a=%a%+1
  12. goto restart
复制代码

试试这个

2403

无效,指定到bin和指定到java.exe刚刚也都试过了,问题确认了出在电脑的环境上。这个java17安装时会改动电脑的java部署环境,强制指定它,以前的所有设置都无效,很迷

下一页 最后一页