找回密码
 初始化身份识别芯片
查看: 1139|回复: 2

使用Java11启动Starsector96,无class文件修改

[复制链接]

战列舰长

发表于 2024-2-8 11:15:03 | 显示全部楼层 |阅读模式
本帖最后由 zender 于 2024-2-8 13:16 编辑


发隔壁mod制作发布了
粒子引擎注入与java11之钥 - Mod制作发布 - 远行星号中文论坛 (fossic.org)

之后如果有修复/更新就在上面这个帖子发了

经过早上几个小时的研究,我搞明白了挡在Starsector96到java11前只有两件事,java ee和sun.nio.ch.DirectBuffer

premain+javassist实际上就是在运行时修改内存中的class数据,标题属于是玩了个文字游戏,该方法确实不修改任何.class和.jar文件,但是修改了class数据

借助premain+javassist技术,我重写了唯一使用sun.nio.ch.DirectBuffer 的函数
再在启动参数中加入巨量的add-opens和add-exports
再在启动参数中加入对java ee的引用
我成功的使用java11启动了Starsector96并且在超空间中飞行了一小段,过了一个月,打了一场模拟战
唯一的问题是窗口模式下边框(x按钮那部分)消失了


在这先放一个java ee下载链接 http://download.java.net/glassfish/5.0/release/javaee8-ri.zip
模组文件:



我直接就在之前pei里面写了,这次安装有所区别,请详细阅读下列文本
预准备1,正常解压模组文件后将模组文件夹中的javassist.jar和ParticleEngineInject_PreMain.jar文件挪动到starsector-core里
预准备2,从我提供的java ee下载链接下载java ee,将下载到的javaee8-ri.zip文件解压到Starsector目录(游戏可执行所在位置)下

首先,你需要在启动参数中-Dcom.fs.starfarer.settings.paths.mods=../mods和-classpath之间加入以下参数,且加入的参数前后加上空格以分隔
--add-opens=java.base/jdk.internal.vm.annotation=ALL-UNNAMED --add-opens=java.base/sun.net=ALL-UNNAMED --add-opens=java.base/sun.net.util=ALL-UNNAMED --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED --add-opens=java.base/sun.net.www=ALL-UNNAMED --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=jdk.unsupported/sun.misc=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED


然后在classpath参数的最后(一般来说,最后一项是xstream-1.4.10.jar,也就是在这之后不加空格,直接复制粘贴)加上;javassist.jar;../glassfish5/glassfish/lib/javaee.jar -javaagent:ParticleEngineInject_PreMain.jar
注意:从;开始到最后的.jar完整复制粘贴,包括;
注意:如果你已经使用了旧版本的PEI,请不要让-javaagent:ParticleEngineInject_PreMain.jar参数重复

最后将jre换成java11版本

版本注意:虽然我使用了特殊办法规避了直接引用混淆函数,但是这并不意味着模组绝对可以在096rc10之外的任何版本使用,只是相较于直接引用有了一些正常使用的可能性



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

势力巨擘

今天的圣餐所......................

发表于 2024-2-8 13:12:57 | 显示全部楼层
事实证明Alex只是懒()
“死雷发射”
攻势:A   √   √   √

势力巨擘

发表于 2024-2-12 12:47:29 | 显示全部楼层
性能提升有吗 有没有试过的来说说

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2024-11-23 18:02

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

快速回复 返回顶部 返回列表