java - 不同数量的命令行参数

标签 java sockets command-line-arguments

下面的代码给出 “线程“main”java.lang.Error 中出现异常: Unresolved 编译问题: url 无法解析为变量” 错误。命令行参数可以有三四个,所以我用了一个if语句来测试它,但是代码似乎没有从命令行获取String url。

public static void main(String[] args) throws Exception {


    Socket sock = new Socket("kjlkjlkjl", 80);
    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
    writer.write("GET "+ url +"HTTP/1.1\r\n"
            + "Host: jhkjhkjhkjh\r\n"
            + "Connection: keep-alive\r\n"
            + "\r\n");
}

最佳答案

您确定您的url位于if-else语句内,并且您的writer看不到它。

通过以下方式更改您的代码:

    String url;
    String target;
    String replacement;
    int odd = -1;
    if(args.length > 3)
    {
        odd = Integer.parseInt(args[0]);
        url = args[1];
        target = args[2];
        replacement = args[3];
    }
    else if(args.length > 2)
    {
        url = args[0];
        target = args[1];
        replacement = args[2];
    }

编辑:我认为你需要观看 basics

关于java - 不同数量的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799154/

相关文章:

c++ - 命令行参数不是 incrementinc argc

c - 将命令行参数从主函数传递给用户定义的 C 函数

java - 十进制格式导致 'void type not allowed here' 错误

java - 尝试编译 Java 程序时编码 Cp1252 的不可映射字符

java - 为什么递增 Java int 最终会导致负数?

java - Windows平台上socket连接异常为什么会有差异

java - 以编程方式启用应用程序的市场更新

java - 在套接字上写入大字符串时出错?

python - 如果没有接收数据并且数据长度未知,如何在python中中断while循环[TCP]

c - 如何正确比较命令行参数?