本帖最后由 651158055 于 2015-6-16 21:34 编辑
http://www.mcbbs.net/forum.php?m ... d=439516&highlight=启动器讲了 但是 有些地方没看明白
接下来获取json里的"mainClass"
mainclass就是主类,必须要用的,待会会说道。
最重要的,获取json里的"libraries",这是一个数组(或叫列表也行)
遍历这个数组的每一项,获取每一项里的"name",得到的大概是这样的格式:
cc.skinme:1.6.4:1.0.0把这段内容用":"分隔开,然后
用"\"重新组合,第一段(就是分隔后的第一部分)要把"."替换成"\",然后在把1、2、3端都用"\“接在一起,得到了一个目录。找到这个目录下唯一的jar文件,获取这个文件的路径,然后将得到的路径串用";"组合在一起(libraries不是一个列表吗,里面有很多值,把这些值都用";"组合)
(注意:以上值,比如":"都不包括双引号)
根本没看懂 求 解释
然后就是拼装启动脚本了
启动脚本="JAVA路径" -Xmx最大内存M -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Djava.library.path=".minecraft\natives" -cp "你刚刚得到的libraries拼合的值;完整的版本文件夹里的核心jar路径" 主类 第一部获取的arg
这一段也没看懂 就是红底黑字的 拼起来不是一段数字么 怎么成地址了
然后我发现
"libraries": [{
"name": "java3d:vecmath:1.3.1"},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
后面一大堆
在libraries当中搜索 后面的数字 1.3.1 发现有一个文件 每一个搜索都能找到一个文件 难道跟这个有关系?求指导
接下来获取json里的"mainClass"
mainclass就是主类,必须要用的,待会会说道。
最重要的,获取json里的"libraries",这是一个数组(或叫列表也行)
遍历这个数组的每一项,获取每一项里的"name",得到的大概是这样的格式:
cc.skinme:1.6.4:1.0.0把这段内容用":"分隔开,然后
用"\"重新组合,第一段(就是分隔后的第一部分)要把"."替换成"\",然后在把1、2、3端都用"\“接在一起,得到了一个目录。找到这个目录下唯一的jar文件,获取这个文件的路径,然后将得到的路径串用";"组合在一起(libraries不是一个列表吗,里面有很多值,把这些值都用";"组合)
(注意:以上值,比如":"都不包括双引号)
根本没看懂 求 解释
然后就是拼装启动脚本了
启动脚本="JAVA路径" -Xmx最大内存M -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Djava.library.path=".minecraft\natives" -cp "你刚刚得到的libraries拼合的值;完整的版本文件夹里的核心jar路径" 主类 第一部获取的arg
这一段也没看懂 就是红底黑字的 拼起来不是一段数字么 怎么成地址了
然后我发现
"libraries": [{
"name": "java3d:vecmath:1.3.1"},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
后面一大堆
在libraries当中搜索 后面的数字 1.3.1 发现有一个文件 每一个搜索都能找到一个文件难道跟这个有关系?求指导
http://www.mcbbs.net/forum.php?m ... d=439516&highlight=启动器讲了 但是 有些地方没看明白
接下来获取json里的"mainClass"
mainclass就是主类,必须要用的,待会会说道。
最重要的,获取json里的"libraries",这是一个数组(或叫列表也行)
遍历这个数组的每一项,获取每一项里的"name",得到的大概是这样的格式:
cc.skinme:1.6.4:1.0.0把这段内容用":"分隔开,然后
用"\"重新组合,第一段(就是分隔后的第一部分)要把"."替换成"\",然后在把1、2、3端都用"\“接在一起,得到了一个目录。找到这个目录下唯一的jar文件,获取这个文件的路径,然后将得到的路径串用";"组合在一起(libraries不是一个列表吗,里面有很多值,把这些值都用";"组合)
(注意:以上值,比如":"都不包括双引号)
根本没看懂 求 解释
然后就是拼装启动脚本了
启动脚本="JAVA路径" -Xmx最大内存M -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Djava.library.path=".minecraft\natives" -cp "你刚刚得到的libraries拼合的值;完整的版本文件夹里的核心jar路径" 主类 第一部获取的arg
这一段也没看懂 就是红底黑字的 拼起来不是一段数字么 怎么成地址了
然后我发现
"libraries": [{
"name": "java3d:vecmath:1.3.1"},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
后面一大堆
在libraries当中搜索 后面的数字 1.3.1 发现有一个文件 每一个搜索都能找到一个文件 难道跟这个有关系?求指导
2021.12 数据,可能有更多内容
http://www.mcbbs.net/forum.php?m ... d=439516&highlight=启动器讲了 但是 有些地方没看明白接下来获取json里的"mainClass"
mainclass就是主类,必须要用的,待会会说道。
最重要的,获取json里的"libraries",这是一个数组(或叫列表也行)
遍历这个数组的每一项,获取每一项里的"name",得到的大概是这样的格式:
cc.skinme:1.6.4:1.0.0把这段内容用":"分隔开,然后
用"\"重新组合,第一段(就是分隔后的第一部分)要把"."替换成"\",然后在把1、2、3端都用"\“接在一起,得到了一个目录。找到这个目录下唯一的jar文件,获取这个文件的路径,然后将得到的路径串用";"组合在一起(libraries不是一个列表吗,里面有很多值,把这些值都用";"组合)
(注意:以上值,比如":"都不包括双引号)
根本没看懂 求 解释
然后就是拼装启动脚本了
启动脚本="JAVA路径" -Xmx最大内存M -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true -Djava.library.path=".minecraft\natives" -cp "你刚刚得到的libraries拼合的值;完整的版本文件夹里的核心jar路径" 主类 第一部获取的arg
这一段也没看懂 就是红底黑字的 拼起来不是一段数字么 怎么成地址了
然后我发现
"libraries": [{
"name": "java3d:vecmath:1.3.1"},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
后面一大堆
在libraries当中搜索 后面的数字 1.3.1 发现有一个文件 每一个搜索都能找到一个文件难道跟这个有关系?求指导
http://www.mcbbs.net/thread-435526-1-1.html
如果你没Java基础..那我也没办法了
如果你没Java基础..那我也没办法了
andylizi 发表于 2015-6-17 20:10
http://www.mcbbs.net/thread-435526-1-1.html
如果你没Java基础..那我也没办法了
好吧 学学学... 学海无涯 回头是岸啊
我觉得挺好懂得……说的挺明白了,简单来说,libraries这个里面存放着启动时要加载的一些文件,启动器启动步骤就是解析libraries,把这些文件变成路径,拼到脚本里,脚本在执行的时候就会自动加载这些文件了,然后就启动成功了
本帖最后由 651158055 于 2015-6-18 21:58 编辑
"libraries": [{
"name": "java3d:vecmath:1.3.1"},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
后面一大堆
比如说 我提到的这两个
"name": "java3d:vecmath:1.3.1
f:\Minecraft 1.7.2\.minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar
"name": "net.sf.trove4j:trove4j:3.0.3
f:\Minecraft 1.7.2\.minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar
如何把这两个文件的路径拼凑在一起
gogo81745 发表于 2015-6-18 18:11
我觉得挺好懂得……说的挺明白了,简单来说,libraries这个里面存放着启动时要加载的一些文件,启动器启动 ...
"name": "java3d:vecmath:1.3.1"},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
后面一大堆
比如说 我提到的这两个
"name": "java3d:vecmath:1.3.1
f:\Minecraft 1.7.2\.minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar
"name": "net.sf.trove4j:trove4j:3.0.3
f:\Minecraft 1.7.2\.minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar
如何把这两个文件的路径拼凑在一起
651158055 发表于 2015-6-18 21:57
"libraries": [{
"name": "java3d:vecmath:1.3.1"},
{
先得到第一个的绝对路径f:\Minecraft 1.7.2\.minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar
在得到后面的绝对路径f:\Minecraft 1.7.2\.minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar
然后把这两个字符串连接起来,中间用封号分开
f:\Minecraft 1.7.2\.minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;f:\Minecraft 1.7.2\.minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar
就这样
gogo81745 发表于 2015-6-19 08:50
先得到第一个的绝对路径f:\Minecraft 1.7.2\.minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.j ...
明白了 谢谢
我也来学学Java基础
数组不一定是数字,他可以是任何类型,string什么的也可以,For example:
string test1[3];
我这样就定义了一个string类型的数组,并且他补充说明的很明白了,生怕你搅浑这个数组的概念,他告诉你了:叫列表也行,说明的很直白了吧。
cp参数后面填什么的问题,我觉得6楼说的很明白了,但是他没告诉你路径和路径之间应该用英文半角分号隔开的问题,知道就好。路径里不能出现英文分号
string test1[3];
我这样就定义了一个string类型的数组,并且他补充说明的很明白了,生怕你搅浑这个数组的概念,他告诉你了:叫列表也行,说明的很直白了吧。
cp参数后面填什么的问题,我觉得6楼说的很明白了,但是他没告诉你路径和路径之间应该用英文半角分号隔开的问题,知道就好。路径里不能出现英文分号
多谢你这个贴子,第一行那个链接让我懂了mc启动原理,昨天晚上赶制出了一个启动器,用java写的