我将我的Runescape专用服务器从Windows移到Linux。 服务器有一个run.bat来启动。
@echo off title Project Kingscape java -cp bin;deps/poi.jar;deps/mysql.jar;deps/mina.jar;deps/slf4j.jar;deps/slf4j-nop.jar;deps/jython.jar;log4j-1.2.15.jar;-server -XX:+AggressiveHeap -XX:MaxHeapFreeRatio=90 -XX:MinHeapFreeRatio=90 -XX:+DisableExplicitGC -XX:+RelaxAccessControlCheck -XX:+UseParallelGC -XX:CompileThreshold=1 -XX:ThreadStackSize=128 server.Server pause
我将其转换为以下.sh脚本:
#!/bin/bash java -classpath bin:deps/poi.jar:deps/mysql.jar:deps/mina.jar:deps/slf4j.jar:deps/slf4j-nop.jar:deps/jython.jar:log4j-1.2.15.jar:server.Server read
我也安装了OpenJdk 7。
当我尝试运行run.sh文件时,terminal向我显示以下内容:
Usage: java [-options] class [args...] (to execute a class) or java [-options] -jar jarfile [args...] (to execute a jar file) where options include: -d32 use a 32-bit data model if available -d64 use a 64-bit data model if available -server to select the "server" VM -zero to select the "zero" VM -jamvm to select the "jamvm" VM -avian to select the "avian" VM -dcevm to select the "dcevm" VM The default VM is server. -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> A : separated list of directories, JAR archives, and ZIP archives to search for class files. -D<name>=<value> set a system property -verbose:[class|gc|jni] enable verbose output -version print product version and exit -version:<value> require the specified version to run -showversion print product version and continue -jre-restrict-search | -no-jre-restrict-search include/exclude user private JREs in the version search -? -help print this help message -X print help on non-standard options -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] enable assertions with specified granularity -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] disable assertions with specified granularity -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions -agentlib:<libname>[=<options>] load native agent library <libname>, eg -agentlib:hprof see also, -agentlib:jdwp=help and -agentlib:hprof=help -agentpath:<pathname>[=<options>] load native agent library by full pathname -javaagent:<jarpath>[=<options>] load Java programming language agent, see java.lang.instrument -splash:<imagepath> show splash screen with specified image See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
我明白,我的语法是错误的,但对我的遗憾,我没有任何的Linux知识。
有人能帮我find你有什么问题吗?
你错过了classpath参数和主类的名字之间的空格:
java -classpath bin:deps/poi.jar:deps/mysql.jar:deps/mina.jar:deps/slf4j.jar: \ deps/slf4j-nop.jar:deps/jython.jar:log4j-1.2.15.jar server.server ~ ~
除了使用冒号代替分号作为路径分隔符之外,该命令应该与Windows上的完全相同,因此理想情况下:
java -cp bin:deps/poi.jar:deps/mysql.jar:deps/mina.jar:deps/slf4j.jar: \ deps/slf4j-nop.jar:deps/jython.jar:log4j-1.2.15.jar \ -server -XX:+AggressiveHeap -XX:MaxHeapFreeRatio=90 -XX:MinHeapFreeRatio=90 \ -XX:+DisableExplicitGC -XX:+RelaxAccessControlCheck -XX:+UseParallelGC \ -XX:CompileThreshold=1 -XX:ThreadStackSize=128 server.server
请注意,初始命令中的类路径和-server
参数之间应该有一个空格。