fix(*): 大版本更新,后续代码版本为3.0
This commit is contained in:
2
.idea/xin-launcher.iml
generated
2
.idea/xin-launcher.iml
generated
@ -6,7 +6,9 @@
|
|||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" name="xin-launcher" level="project" />
|
<orderEntry type="library" name="xin-launcher" level="project" />
|
||||||
|
<orderEntry type="library" name="xin-admin" level="project" />
|
||||||
<orderEntry type="library" name="xin-launcher" level="project" />
|
<orderEntry type="library" name="xin-launcher" level="project" />
|
||||||
<orderEntry type="library" name="xin-admin" level="project" />
|
<orderEntry type="library" name="xin-admin" level="project" />
|
||||||
|
<orderEntry type="library" name="xin-launcher" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@ -66,5 +66,10 @@
|
|||||||
1. 优化全局过滤功能,区分已授权与未授权状态(前者自动跳转登录界面,后者自动跳转授权界面)
|
1. 优化全局过滤功能,区分已授权与未授权状态(前者自动跳转登录界面,后者自动跳转授权界面)
|
||||||
2. 修复全局过滤功能在项目重启后无法正确处理相应拦截的异常
|
2. 修复全局过滤功能在项目重启后无法正确处理相应拦截的异常
|
||||||
|
|
||||||
|
2025-09-28
|
||||||
|
|
||||||
|
1. 大版本更新,后续代码版本为3.0
|
||||||
|
2. 注册表存储随机字符串由机械码及下发授权文件决定
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
183
documents/LauncherCommonFunc工具函数释义-202509928.md
Normal file
183
documents/LauncherCommonFunc工具函数释义-202509928.md
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
# LauncherCommonFunc工具函数释义
|
||||||
|
|
||||||
|
本文档用于解释新增LauncherCommonFunc工具函数的使用释义,开发使用。
|
||||||
|
本文档书写事件:2025-09-28 对应 xinlauncher_20250928.zip 。
|
||||||
|
|
||||||
|
## 简介
|
||||||
|
|
||||||
|
该类统一了鉴权通用的静态资源(路径、命名规范等)及通用的调用功能函数。
|
||||||
|
|
||||||
|
## 调用函数
|
||||||
|
|
||||||
|
基于外部调用,针对每一个函数进行调用释义。
|
||||||
|
注意:该内容需要跟随版本进行修改,查看文档时请注意是否为对应版本包及文档。
|
||||||
|
|
||||||
|
1. 静态资源
|
||||||
|
|
||||||
|
定义内容以表格信息展示:
|
||||||
|
|
||||||
|
| 资源名称 | 调用 | 调用方式 | 释义 |
|
||||||
|
| --------------------------- | ---- | ------------------------------ | ---------------------- |
|
||||||
|
| BaseBoradSN | Y | LauncherCommonFunc.BaseBoradSN | 主板序列号 |
|
||||||
|
| CpuSN | Y | LauncherCommonFunc.CpuSN | CPU序列号 |
|
||||||
|
| DiskSN | Y | LauncherCommonFunc.DiskSN | 硬盘S/N |
|
||||||
|
| UD | Y | LauncherCommonFunc.UD | 授权唯一UUID |
|
||||||
|
| configFile | N | 不可外部调用 | 系统配置文件 |
|
||||||
|
| cipherFile | Y | LauncherCommonFunc.cipherFile | 机械码文件 |
|
||||||
|
| licenseFile | Y | LauncherCommonFunc.licenseFile | 系统授权文件 |
|
||||||
|
| cipherContent | N | 不可外部调用 | 机械码信息(加密字符串) |
|
||||||
|
| SYSTEM_CUSTOMER_AUTHOR_CODE | N | 不可外部调用 | 系统授权前缀信息 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2. 静态函数
|
||||||
|
|
||||||
|
依次对函数进行释义
|
||||||
|
|
||||||
|
1. 机械码初始化函数
|
||||||
|
|
||||||
|
- 函数名:init
|
||||||
|
|
||||||
|
- 调用:不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:LauncherCommonFunc.init();
|
||||||
|
|
||||||
|
- 基础逻辑:初始化缓存项目所在机械对应主板序列号、CPU序列号及硬盘S/N编码。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2. 获取本机机械码秘钥
|
||||||
|
|
||||||
|
- 函数名:generateKey
|
||||||
|
|
||||||
|
- 调用:不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:LauncherCommonFunc.generateKey();
|
||||||
|
|
||||||
|
- 基础逻辑:获取系统授权文件秘钥信息。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3. 字符串处理编码(BOM)异常
|
||||||
|
|
||||||
|
- 函数名:deleteUTF8Bom
|
||||||
|
|
||||||
|
- 调用:不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:LauncherCommonFunc.deleteUTF8Bom(fileStr);
|
||||||
|
|
||||||
|
- 基础逻辑:将传入字符串去除编码过程中出现的BOM异常。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 字段 | 类型 | 释义 |
|
||||||
|
| ------- | ------ | ---------- |
|
||||||
|
| fileStr | String | 文件字符串 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- 出参:去除异常后的字符串
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
4. 获取缓存授权码内容
|
||||||
|
|
||||||
|
- 函数名:getCode
|
||||||
|
|
||||||
|
- 调用:可外部调用
|
||||||
|
|
||||||
|
- 调用方式:LauncherCommonFunc.getCode();
|
||||||
|
|
||||||
|
- 基础逻辑:获取缓存授权码内容。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
5. 设置机械码缓存授权码信息
|
||||||
|
|
||||||
|
- 函数名:setCode
|
||||||
|
|
||||||
|
- 调用:不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:LauncherCommonFunc.setCode(content);
|
||||||
|
|
||||||
|
- 基础逻辑:设置机械码缓存授权码信息。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 字段 | 类型 | 释义 |
|
||||||
|
| ------- | ------ | ------------------------ |
|
||||||
|
| content | String | 系统机械码加密字符串信息 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
6. 获取授权随机加密地址
|
||||||
|
|
||||||
|
- 函数名:getPathKey
|
||||||
|
|
||||||
|
- 调用:不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:LauncherCommonFunc.getPathKey(text);
|
||||||
|
|
||||||
|
- 基础逻辑:根据传入随机码(生成机械码时会自动创建),获取注册表定义地址信息。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 字段 | 类型 | 释义 |
|
||||||
|
| ---- | ------ | ---------------- |
|
||||||
|
| text | String | 系统机械码随机码 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- 出参:返回加密结果字符串
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
7. 生成系统机械码文件
|
||||||
|
|
||||||
|
- 函数名:generateCipher
|
||||||
|
|
||||||
|
- 调用:可外部调用
|
||||||
|
|
||||||
|
- 调用方式:LauncherCommonFunc.generateCipher();
|
||||||
|
|
||||||
|
- 基础逻辑:初始化生成机械码文件(存储对应服务器的硬件加密信息)。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
8. 获取本机硬件加密信息
|
||||||
|
|
||||||
|
- 函数名:generateCipherContent
|
||||||
|
|
||||||
|
- 调用:私有函数,不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:无
|
||||||
|
|
||||||
|
- 基础逻辑:生成系统机械码必要信息对象,并转换为字符串信息。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:返回存储信息JSON字符串
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
87
documents/LocalLauncherValid工具函数释义-202509928.md
Normal file
87
documents/LocalLauncherValid工具函数释义-202509928.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# LocalLauncherValid工具函数释义
|
||||||
|
|
||||||
|
本文档用于解释新增LocalLauncherValid工具函数的使用释义,开发使用。
|
||||||
|
本文档书写事件:2025-09-28 对应 xinlauncher_20250928.zip 。
|
||||||
|
|
||||||
|
## 简介
|
||||||
|
|
||||||
|
该类统一了内部鉴权相关操作函数。
|
||||||
|
|
||||||
|
## 调用函数
|
||||||
|
|
||||||
|
基于外部调用,针对每一个函数进行调用释义。
|
||||||
|
注意:该内容需要跟随版本进行修改,查看文档时请注意是否为对应版本包及文档。
|
||||||
|
|
||||||
|
1. 静态资源
|
||||||
|
|
||||||
|
无。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2. 静态函数
|
||||||
|
|
||||||
|
依次对函数进行释义:
|
||||||
|
|
||||||
|
1. 读取授权码文件内容
|
||||||
|
|
||||||
|
- 函数名:loadCipher
|
||||||
|
|
||||||
|
- 调用:可外部调用
|
||||||
|
|
||||||
|
- 调用方式:LocalLauncherValid.loadCipher();
|
||||||
|
|
||||||
|
- 基础逻辑:读取授权文件对应字符串。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:返回授权文件字符串信息。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2. 验证授权文件
|
||||||
|
|
||||||
|
- 函数名:valid
|
||||||
|
|
||||||
|
- 调用:私有函数,不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:无;
|
||||||
|
|
||||||
|
- 基础逻辑:校验系统授权文件,为空或鉴权失败时,清除已有文件并重新生成机械码信息。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3. 验证系统信息
|
||||||
|
|
||||||
|
- 函数名:validCipher
|
||||||
|
|
||||||
|
- 调用:私有函数,不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:无
|
||||||
|
|
||||||
|
- 基础逻辑:获取存储在机械码文件中的加密字符串信息,比对机械实际硬件信息,对照失败时,重新生成并删除已有授权文件。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
4. 解码校验系统信息
|
||||||
|
|
||||||
|
- 函数名:validCipher
|
||||||
|
|
||||||
|
- 调用:私有函数,不可外部调用
|
||||||
|
|
||||||
|
- 调用方式:无
|
||||||
|
|
||||||
|
- 基础逻辑:解密传入的机械码加密字符串,比对机械实际硬件信息,对照失败时,重新生成并删除已有授权文件。
|
||||||
|
|
||||||
|
- 入参:无
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
65
documents/XinadminLauncherValid工具函数释义-202509928.md
Normal file
65
documents/XinadminLauncherValid工具函数释义-202509928.md
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# XinAdminLauncherValid工具函数释义
|
||||||
|
|
||||||
|
本文档用于解释新增XinAdminLauncherValid工具函数的使用释义,开发使用。
|
||||||
|
本文档书写事件:2025-09-28 对应 xinlauncher_20250928.zip 。
|
||||||
|
|
||||||
|
## 简介
|
||||||
|
|
||||||
|
该类统一了外部鉴权相关操作函数。
|
||||||
|
|
||||||
|
## 调用函数
|
||||||
|
|
||||||
|
基于外部调用,针对每一个函数进行调用释义。
|
||||||
|
注意:该内容需要跟随版本进行修改,查看文档时请注意是否为对应版本包及文档。
|
||||||
|
|
||||||
|
1. 静态资源
|
||||||
|
|
||||||
|
无。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2. 静态函数
|
||||||
|
|
||||||
|
依次对函数进行释义:
|
||||||
|
|
||||||
|
1. 读取授权码文件内容
|
||||||
|
|
||||||
|
- 函数名:validCipher
|
||||||
|
|
||||||
|
- 调用:
|
||||||
|
|
||||||
|
- 调用方式:XinAdminLauncherValid.validCipher(licenseContent,uploadFile);
|
||||||
|
|
||||||
|
- 基础逻辑:解码授权文件信息,校验系统硬件信息。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 字段 | 类型 | 释义 |
|
||||||
|
| -------------- | ------- | -------------- |
|
||||||
|
| licenseContent | String | 授权文件字符串 |
|
||||||
|
| uploadFile | boolean | 是否为上传文件 |
|
||||||
|
|
||||||
|
- 出参:返回校验结果。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2. 验证授权文件
|
||||||
|
|
||||||
|
- 函数名:validMachineInfo
|
||||||
|
|
||||||
|
- 调用:可外部调用
|
||||||
|
|
||||||
|
- 调用方式:XinAdminLauncherValid.validMachineInfo(licenseContent);
|
||||||
|
|
||||||
|
- 基础逻辑:解码授权文件信息,比对机械码存储信息。
|
||||||
|
|
||||||
|
- 入参:
|
||||||
|
|
||||||
|
| 字段 | 类型 | 释义 |
|
||||||
|
| -------------- | ------ | -------------- |
|
||||||
|
| licenseContent | String | 授权文件字符串 |
|
||||||
|
|
||||||
|
- 出参:无
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BIN
xin-launcher.zip
BIN
xin-launcher.zip
Binary file not shown.
Binary file not shown.
@ -165,7 +165,6 @@
|
|||||||
'token': sessionStorage.getItem("token")
|
'token': sessionStorage.getItem("token")
|
||||||
}
|
}
|
||||||
}).then(function (res) {
|
}).then(function (res) {
|
||||||
console.log(res)
|
|
||||||
if (res.data.state === "success") {
|
if (res.data.state === "success") {
|
||||||
that.$message.success('修改成功');
|
that.$message.success('修改成功');
|
||||||
setTimeout(() => { //设置延迟执行
|
setTimeout(() => { //设置延迟执行
|
||||||
|
|||||||
@ -57,9 +57,8 @@
|
|||||||
<div class="des">授权文件:
|
<div class="des">授权文件:
|
||||||
<span style="color: green">正常</span>
|
<span style="color: green">正常</span>
|
||||||
<span>
|
<span>
|
||||||
<el-link type="primary" :underline="false"
|
<el-link type="primary" :underline="false" style="font-size: 12px;margin-left: 8px;"
|
||||||
style=" font-size: 12px;margin-left: 8px;"
|
@click="openUploadLicense">
|
||||||
@click="dialogTableVisible = true">
|
|
||||||
更换授权文件
|
更换授权文件
|
||||||
</el-link>
|
</el-link>
|
||||||
</span>
|
</span>
|
||||||
@ -86,8 +85,8 @@
|
|||||||
<div class="app-des">版本:{{item.version}}</div>
|
<div class="app-des">版本:{{item.version}}</div>
|
||||||
<div class="app-license">{{item.grade == 'custom' ? '定制授权' : item.gradeName}}</div>
|
<div class="app-license">{{item.grade == 'custom' ? '定制授权' : item.gradeName}}</div>
|
||||||
<div class="app-time" style="color: green"
|
<div class="app-time" style="color: green"
|
||||||
v-if="new Date().getTime() < new Date(item.expiryTime).getTime()"> {{item.expiryTime |
|
v-if="new Date().getTime() < new Date(item.expiryTime).getTime()">
|
||||||
dateFilter('YYYY-MM-DD')}}到期
|
{{item.expiryTime | dateFilter('YYYY-MM-DD')}}到期
|
||||||
</div>
|
</div>
|
||||||
<div v-else style="color: red">已过期</div>
|
<div v-else style="color: red">已过期</div>
|
||||||
</div>
|
</div>
|
||||||
@ -124,19 +123,23 @@
|
|||||||
|
|
||||||
<el-dialog title="授权码" :visible.sync="dialogCodeVisible" :close-on-click-modal="false">
|
<el-dialog title="授权码" :visible.sync="dialogCodeVisible" :close-on-click-modal="false">
|
||||||
<div class="demo-input-suffix">
|
<div class="demo-input-suffix">
|
||||||
<el-button style="float: right; margin-top: -25px" icon="el-icon-document-copy" @click="copy()" type="text">
|
<div style="display: flex;margin-top: 10px;">
|
||||||
复制授权码
|
<div style="display: flex;width: 200px;">
|
||||||
</el-button>
|
<div id="qrcode" style="width:200px;height: 200px;"></div>
|
||||||
|
|
||||||
<div>
|
|
||||||
<div style="display: flex;margin-top: 10px;width: 100%;">
|
|
||||||
<div id="qrcode" style="width:200px;height: 200px;"/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-input type="textarea" ref="copy" autosize="true" v-model="single.code" resize="none"
|
<el-input type="textarea" ref="copy" autosize="true" v-model="single.code" resize="none"
|
||||||
readonly="true" :autosize="{ minRows: 9, maxRows: 10}" style="flex:1;margin-left: 10px"/>
|
readonly="true" :autosize="{ minRows: 9, maxRows: 10}"
|
||||||
|
style="flex:1;margin-left: 10px"></el-input>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div style="padding:10px;display: block">
|
||||||
|
<el-button style="float: right; " icon="el-icon-document-copy" @click="copy()"
|
||||||
|
type="text">
|
||||||
|
复制授权码
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-dialog title="授权文件修改" :visible.sync="dialogTableVisible" :close-on-click-modal="false">
|
<el-dialog title="授权文件修改" :visible.sync="dialogTableVisible" :close-on-click-modal="false">
|
||||||
@ -236,11 +239,9 @@
|
|||||||
rightDialogVisible: false,
|
rightDialogVisible: false,
|
||||||
rightDialogTitle: '',
|
rightDialogTitle: '',
|
||||||
tableData: [],
|
tableData: [],
|
||||||
|
|
||||||
companyName: '',
|
companyName: '',
|
||||||
companyAddress: '',
|
companyAddress: '',
|
||||||
companyIntroduce: '',
|
companyIntroduce: '',
|
||||||
|
|
||||||
showPassChange: false,
|
showPassChange: false,
|
||||||
from: {
|
from: {
|
||||||
pass: '',
|
pass: '',
|
||||||
@ -436,7 +437,10 @@
|
|||||||
this.generalQrCode = true;
|
this.generalQrCode = true;
|
||||||
}, 100)
|
}, 100)
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
openUploadLicense() {
|
||||||
|
this.dialogTableVisible = true;
|
||||||
|
},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
#save success
|
#save success
|
||||||
#Thu Dec 17 16:49:58 CST 2020
|
#Thu Dec 17 16:49:58 CST 2020
|
||||||
login.user=admin
|
login.user=admin
|
||||||
|
path_key=
|
||||||
maxthreads=200
|
maxthreads=200
|
||||||
port=8080
|
port=8080
|
||||||
charset=UTF-8
|
charset=UTF-8
|
||||||
@ -9,8 +10,7 @@ login.edit=0
|
|||||||
login.pass=aeb6a04dfe285d98298f5666f02d2503
|
login.pass=aeb6a04dfe285d98298f5666f02d2503
|
||||||
is_dev=1
|
is_dev=1
|
||||||
maxconnections=10000
|
maxconnections=10000
|
||||||
product_version=2.0
|
product_version=3.0
|
||||||
# 产品分组标识 为空时不进行校验 存在值时将进行产品分组数据信息校验 不一致时鉴权不通过
|
|
||||||
product_group_code=
|
product_group_code=
|
||||||
# 该配置为 1 时 标识不加载对应鉴权数据模块 为空或其他值时进行校验
|
# 该配置为 1 时 标识不加载对应鉴权数据模块 为空或其他值时进行校验
|
||||||
is_client=
|
is_client=
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal EnableDelayedExpansion
|
|
||||||
@rem set "LinkName=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\XinLauncher.lnk"
|
|
||||||
mshta VBScript:Execute("Set Shell=CreateObject(""WScript.Shell""):Set Link=Shell.CreateShortcut(Shell.SpecialFolders(""Startup"") & ""\XinLauncher.lnk""):Link.TargetPath=""%~dp0\run.bat"":Link.WorkingDirectory=""%~dp0\"":Link.Save:close")
|
|
||||||
pause
|
|
||||||
exit
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
@echo off
|
|
||||||
title Xin-launcher启动器(请勿关闭)
|
|
||||||
SETLOCAL
|
|
||||||
set "CURRENT_DIR=%cd%"
|
|
||||||
|
|
||||||
set "CATALINA_HOME=%CURRENT_DIR%"
|
|
||||||
|
|
||||||
set MAINPATH=%cd%\lib\xin-launcher.jar
|
|
||||||
|
|
||||||
set JAVA_HOME="C:\project\test_environment\jdk1.8.0_191"
|
|
||||||
|
|
||||||
echo CURRENT_DIR=%CURRENT_DIR%
|
|
||||||
echo JAVA_HOME=%JAVA_HOME%
|
|
||||||
echo MAINPATH=%MAINPATH%
|
|
||||||
|
|
||||||
@rem 设置Java虚拟机参数
|
|
||||||
set JAVA_VM=-hotspot
|
|
||||||
@rem 设置Java虚拟机所使用的内存
|
|
||||||
set MEM_ARGS=-Xms128m -Xmx128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -XX:MaxDirectMemorySize=128m -Xss1024K
|
|
||||||
@rem start /b
|
|
||||||
taskkill /f /t /im javaw.exe
|
|
||||||
CHCP 65001
|
|
||||||
@rem 如果此行命令运行失败 使用下方命令
|
|
||||||
start /b %JAVA_HOME%\bin\javaw %MEM_ARGS% -Dfile.encoding=UTF-8 -jar %MAINPATH%
|
|
||||||
@rem start /b %JAVA_HOME%\bin\javaw %MEM_ARGS% %MAINPATH%
|
|
||||||
:end
|
|
||||||
ENDLOCAL
|
|
||||||
Reference in New Issue
Block a user