Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要帮助将批处理转换为Shell吗_Java_Shell_Batch File_Ssl_Vps - Fatal编程技术网

Java 需要帮助将批处理转换为Shell吗

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

在过去的几天里,我到处寻找,尝试了许多不同的方法,但似乎无法将批处理文件转换为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-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对不起,我的错了,我以为你指的是断线