ARSpark
本帖最后由 RarityEG 于 2021-7-31 00:07 编辑

问题大概是这样的:
之前我从来没有尝试过 1.17.1 Forge 的启动,结果启动时就遇到了问题:


这看上去是个启动器的问题,于是我查找了所有可能导致问题的代码,结果一无所获

然后我开始查看启动参数:(已经涂色)


我尝试过重新安装等解决方案,没有发现……

附 Java 版本:
openjdk version "16.0.1" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-16.0.1+9 (build 16.0.1+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-16.0.1+9 (build 16.0.1+9, mixed mode, sharing)
重复:这看上去是个参数生成的问题,但果真如此吗?我希望得到这个问题的答案。
还有一些相关代码,不过由于我的代码风格混乱,可读性不强:


非常感谢!




xmdhs
这一段
  1.   "jvm": [
  2.             "-DignoreList=bootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,client-extra,fmlcore,javafmllanguage,mclanguage,forge-,${version_name}.jar",
  3.             "-DmergeModules=jna-5.8.0.jar,jna-platform-58.0.jar,java-objc-bridge-1.0.0.jar",
  4.             "-DlibraryDirectory=${library_directory}",
  5.             "-p",
  6.             "${library_directory}/cpw/mods/bootstraplauncher/0.1.16/bootstraplauncher-0.1.16.jar${classpath_separator}${library_directory}/cpw/mods/securejarhandler/0.9.46/securejarhandler-0.9.46.jar${classpath_separator}${library_directory}/org/ow2/asm/asm-commons/9.1/asm-commons-9.1.jar${classpath_separator}${library_directory}/org/ow2/asm/asm-util/9.1/asm-util-9.1.jar${classpath_separator}${library_directory}/org/ow2/asm/asm-analysis/9.1/asm-analysis-9.1.jar${classpath_separator}${library_directory}/org/ow2/asm/asm-tree/9.1/asm-tree-9.1.jar${classpath_separator}${library_directory}/org/ow2/asm/asm/9.1/asm-9.1.jar",
  7.             "--add-modules",
  8.             "ALL-MODULE-PATH",
  9.             "--add-opens",
  10.             "java.base/java.util.jar=cpw.mods.securejarhandler",
  11.             "--add-exports",
  12.             "java.base/sun.security.util=cpw.mods.securejarhandler",
  13.             "--add-exports",
  14.             "jdk.naming.dns/com.sun.jndi.dns=java.naming"
  15.         ]
复制代码


按照对应的原版的 json 来看,应该是 jvm 的参数,也就是要放到 -cp 前面的。

ARSpark

我试过了,似乎没用,错误还是那个错误(
可这和产生的错误有什么关系呢(

xmdhs
RarityEG 发表于 2021-7-30 22:32
我试过了,似乎没用,错误还是那个错误(
可这和产生的错误有什么关系呢( ...

是我把问题想简单了,我这也复现了,等下去趴下官方启动器的参数,看看有什么区别。

ARSpark
xmdhs 发表于 2021-7-30 22:45
是我把问题想简单了,我这也复现了,等下去趴下官方启动器的参数,看看有什么区别。 ...

用 Node 对比了一下:




火车撞鸟
你似乎多了一个 “/home/rarity/Ponyville/Minecraft/versions/1.17.1/1.17.1.jar”

ARSpark
火车撞鸟 发表于 2021-7-30 23:48
你似乎多了一个 “/home/rarity/Ponyville/Minecraft/versions/1.17.1/1.17.1.jar”

我刚刚也发现了
(不过 JSON 中并没有要求说不能加这个啊)

ARSpark
本帖最后由 RarityEG 于 2021-7-30 23:59 编辑
xmdhs 发表于 2021-7-30 22:45
是我把问题想简单了,我这也复现了,等下去趴下官方启动器的参数,看看有什么区别。 ...

找到解法了,-DignoreList 中的 ${version_name}.jar 要换成 1.17.1.jar,结果我换成了 1.17.1-forge-37.0.15.jar
然后搜索 modules 就出问题了
但是 37.0.10 以及之前的 Forge 没有这个参数,所以似乎在 versions 中已经有 jar 的时候不要 cp 上原来的 jar
(之前没见到过这种操作,除了 Fabric 会创建一个空的占位)

下一页 最后一页