我已经实现了一个聊天服务器客户端。我已经编写了以下shell脚本来动态接受服务器端口号: server.sh
javac -classpath .com/chat/ChatConstants.java
javac -classpath。com/chat/ChatServer.java
echo输入服务器端口号
阅读$1
java com.chat.ChatServer $1
这是我试图将参数传递给的java main方法:
public static void main(String args[]) {
// The default port number.
int portNumber = 8888;
if (args.length < 1) {
System.out.println("Chat server is up on " + portNumber);
} else {
portNumber = Integer.valueOf(args[0]).intValue();
System.out.println("Chat server is up on " + portNumber);
}
}
但是,打印的端口号始终是默认端口ie 8888。当我运行java程序时,如下所示
java com.chat.ChatServer 2727
正确获取cmd线路参数,并将服务器端口设置为2727。
我似乎在shell脚本中做了一些错误的事情。我甚至尝试用引号传递参数,如下所示:
java com.chat.ChatServer "$1“
命令提示符将立即关闭。
请帮帮忙
发布于 2018-08-20 00:48:23
你的脚本应该是:
read PORT
java com.chat.ChatServer $PORT
发布于 2018-08-20 01:28:06
您需要将您的输入read
到不同的变量中。
编辑:只是一个附注,你可以使用read -p "Enter server port number" P
打印一个提示符,而不需要使用echo
。
https://stackoverflow.com/questions/51919736
复制相似问题