首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从shell脚本输入传递java main方法参数

从shell脚本输入传递java main方法参数
EN

Stack Overflow用户
提问于 2018-08-20 00:35:19
回答 2查看 992关注 0票数 0

我已经实现了一个聊天服务器客户端。我已经编写了以下shell脚本来动态接受服务器端口号: server.sh

javac -classpath .com/chat/ChatConstants.java

javac -classpath。com/chat/ChatServer.java

echo输入服务器端口号

阅读$1

java com.chat.ChatServer $1

这是我试图将参数传递给的java main方法:

代码语言:javascript
运行
复制
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“

命令提示符将立即关闭。

请帮帮忙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-20 00:48:23

你的脚本应该是:

代码语言:javascript
运行
复制
read PORT
java com.chat.ChatServer $PORT
票数 1
EN

Stack Overflow用户

发布于 2018-08-20 01:28:06

您需要将您的输入read到不同的变量中。

编辑:只是一个附注,你可以使用read -p "Enter server port number" P打印一个提示符,而不需要使用echo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51919736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档