传递命令行java程序参数

use*_*168 -1 java command-line-arguments

我正在编写一个必须通过命令行运行的java服务器.我想传递给服务器不同的端口号来听.但是,我不确定如何在运行服务器时将端口号作为命令行参数传递给ServerSocket类.

public class Server {

    public static void main(String[] args) {
        Server server = new Server();
    }

    public Server() {
        ServerSocket socket = new ServerSocket(5000);
        // I want to specify the port number above as an argument when running the server. 
    }

}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

Rei*_*eus 6

你可以把它传递进去:

public class Server {

    private static final int DEFAULT_PORT = 5000;

    public static void main(String[] args) {
        int port = args.length > 0? Integer.parseInt(args[0]): DEFAULT_PORT;
        Server server = new Server(port);
    }

    public Server(int port) {
       ServerSocket socket = new ServerSocket(port);
       ...
    }
Run Code Online (Sandbox Code Playgroud)

您可以使用条件运算符来确定在没有传入值的情况下是否应使用默认端口.