Java 需要帮助将批处理转换为Shell吗
在过去的几天里,我到处寻找,尝试了许多不同的方法,但似乎无法将批处理文件转换为shell文件,以便在linux VPS上运行maplestory私有服务器 我的批处理文件是Java 需要帮助将批处理转换为Shell吗,java,shell,batch-file,ssl,vps,Java,Shell,Batch File,Ssl,Vps,在过去的几天里,我到处寻找,尝试了许多不同的方法,但似乎无法将批处理文件转换为shell文件,以便在linux VPS上运行maplestory私有服务器 我的批处理文件是 @echo off @title TiredStory World Server set CLASSPATH=.;dist\TiredStory.jar;dist\mina-core.jar;dist\slf4j-api.jar;dist\slf4j- jdk14.jar;dist\mysql-connector
@echo off
@title TiredStory World Server
set CLASSPATH=.;dist\TiredStory.jar;dist\mina-core.jar;dist\slf4j-api.jar;dist\slf4j- jdk14.jar;dist\mysql-connector-java-bin.jar
java -Xmx100m -Dwzpath=wz\
-Djavax.net.ssl.keyStore=filename.keystore
-Djavax.net.ssl.keyStorePassword=keoki
-Djavax.net.ssl.trustStore=filename.keystore
-Djavax.net.ssl.trustStorePassword=passwd
-Drecvops=recvops.properties
-Dsendops=sendops.properties
net.world.WorldServer
pause
我猜您不需要“@echo off”或“@title”或“pause”,因此您的shell脚本将简化为:
export CLASSPATH=.:dist/TiredStory.jar:dist/mina-core.jar:dist/slf4j-api.jar:dist/slf4j-jdk14.jar:dist/mysql-connector-java-bin.jar
java -Xmx100m -Dwzpath=wz \
-Djavax.net.ssl.keyStore=filename.keystore \
-Djavax.net.ssl.keyStorePassword=keoki \
-Djavax.net.ssl.trustStore=filename.keystore \
-Djavax.net.ssl.trustStorePassword=passwd \
-Drecvops=recvops.properties \
-Dsendops=sendops.properties \
net.world.WorldServer
- “@echo off”仅用于停用echo,对您的情况没有任何功能影响
- “@title”只是在windows中的命令行窗口中设置标题,在shell中没有用处
- 在类路径中替换“;”加上“:”
- 而不是“set”:“export”(虽然export是在您有子shell的情况下进行的,但如果您有子shell,它不会造成任何伤害)
- 断线时,每次都要使用
\
- 暂停只是(显然)暂停,在你的情况下没有功能上的影响
- 以下是我的翻译:
#! /bin/bash
export CLASSPATH="."
export CLASSPATH="$CLASSPATH:dist/TiredStory.jar"
export CLASSPATH="$CLASSPATH:dist/mina-core.jar"
export CLASSPATH="$CLASSPATH:dist/slf4j-api.jar"
export CLASSPATH="$CLASSPATH:dist/slf4j-jdk14.jar"
export CLASSPATH="$CLASSPATH:dist/mysql-connector-java-bin.jar"
java -Xmx100m -Dwzpath=wz \
-Djavax.net.ssl.keyStore=filename.keystore \
-Djavax.net.ssl.keyStorePassword=keoki \
-Djavax.net.ssl.trustStore=filename.keystore \
-Djavax.net.ssl.trustStorePassword=passwd \
-Drecvops=recvops.properties \
-Dsendops=sendops.properties \
net.world.WorldServer
请注意,
CLASSPATH
条目是相对目录,这通常不是一个好主意。另外,我不确定您需要的wzpath
属性是什么值(它应该包含空格还是反斜杠?)。这里它只是wz
请更具体一些。你尝试了什么但没有成功?你的shell程序在哪里?运行时会发生什么情况?类路径目录分隔符应该是“/”(对于unix)而不是“\”(对于windows)。@DavidPostill脚本是要在LINUX环境中运行的,你读过这个问题吗?是的,我读过。在你的回答中,你正确地说了“在类路径中替换“;”为“:”,但你没有在类路径中更改“\”为“/”,这也需要做“导出类路径=:dist/TiredStory.jar:dist/mina core.jar:dist/slf4j api.jar:dist/slf4j-jdk14.jar:dist/mysql连接器java bin.jar”@DavidPostill对不起,我的错了,我以为你指的是断线