命令行参数问题

时间:2022-06-07 14:30:35
    《Java编程思想(第四版)》上的一道习题:编写一个程序,打印出从命令行获得的三个参数。为此,需要确定命令行数组中的String的下标。
    源代码如下:

    public class CommandArgTest {
public static void main(String[] args) {
System.out.println("args[0] = " + args[0]);
System.out.println("args[1] = " + args[1]);
System.out.println("args[2] = " + args[2]);
}
    }

    用javac CommandArgTest.java test1 test2 test3编译时,出现错误:仅当显式请求注释处理时才接受类名称"test1 test2 test3"。
    网上的说法各种各样,有说jdk的路径不对,但其他的程序没出现过类似的错误,所以应该不是这个问题;有的说使用或覆盖了已过时的API,用-Xlint:deprecation编译,但还是无法解决。
    还有-Xlint:deprecation到底什么意思,只知道-Xlint:deprecation是“输出使用已过时的 API 的源位置”的意思。
    头都大了,请大家帮忙了。

11 个解决方案

#1


你用Eclipse吧  在运行设置里面有一个框里面可以写运行时要传入的参数 

#2


javac是编译,这时不需要给参数
运行时候:java CommandArgTest test1 test2 test3

#3


编译时只需要 javac CommandArgTest.java 就可以了

#4


引用 1 楼 coldanimal 的回复:
你用Eclipse吧  在运行设置里面有一个框里面可以写运行时要传入的参数
这个是在命令行窗口中进行编译的,平常是在MyEclipse中写,能方便点。

#5


引用 2 楼 justlearn 的回复:
javac是编译,这时不需要给参数
运行时候:java CommandArgTest test1 test2 test3
果然是这样,被弄懵了,呵呵

#6


javac是编译器,把源文件转换成字节码文件,这是一个编译过程,不需要传参数。
楼上的说的都很在理。

#7


引用 6 楼 java_zhengjd 的回复:
javac是编译器,把源文件转换成字节码文件,这是一个编译过程,不需要传参数。
楼上的说的都很在理。
恩,对原理的没掌握好。多谢了!

#8


我也正在重温这本书,建议还是用myeclipse,特殊的例子才去命令行,这样效率高点

#9


编译javac不需要给参数 运行时java才带上参数

#10


引用 8 楼 justlearn 的回复:
我也正在重温这本书,建议还是用myeclipse,特殊的例子才去命令行,这样效率高点
恩,讲得挺好的,不仅有怎么做还有为什么,不过看到后面有些吃力,像类型信息和后面的东西,可能是编码太少了,这两天先写写前面的东西,复习复习。用MyEclipse的确方便,我也一直在用,不过不是太熟悉,觉得这个问题可能在IDE里也能有输入的地方,但是没找到。

#11


引用 9 楼 pengzai512 的回复:
编译javac不需要给参数 运行时java才带上参数
恩,刚知道了,多谢。

#1


你用Eclipse吧  在运行设置里面有一个框里面可以写运行时要传入的参数 

#2


javac是编译,这时不需要给参数
运行时候:java CommandArgTest test1 test2 test3

#3


编译时只需要 javac CommandArgTest.java 就可以了

#4


引用 1 楼 coldanimal 的回复:
你用Eclipse吧  在运行设置里面有一个框里面可以写运行时要传入的参数
这个是在命令行窗口中进行编译的,平常是在MyEclipse中写,能方便点。

#5


引用 2 楼 justlearn 的回复:
javac是编译,这时不需要给参数
运行时候:java CommandArgTest test1 test2 test3
果然是这样,被弄懵了,呵呵

#6


javac是编译器,把源文件转换成字节码文件,这是一个编译过程,不需要传参数。
楼上的说的都很在理。

#7


引用 6 楼 java_zhengjd 的回复:
javac是编译器,把源文件转换成字节码文件,这是一个编译过程,不需要传参数。
楼上的说的都很在理。
恩,对原理的没掌握好。多谢了!

#8


我也正在重温这本书,建议还是用myeclipse,特殊的例子才去命令行,这样效率高点

#9


编译javac不需要给参数 运行时java才带上参数

#10


引用 8 楼 justlearn 的回复:
我也正在重温这本书,建议还是用myeclipse,特殊的例子才去命令行,这样效率高点
恩,讲得挺好的,不仅有怎么做还有为什么,不过看到后面有些吃力,像类型信息和后面的东西,可能是编码太少了,这两天先写写前面的东西,复习复习。用MyEclipse的确方便,我也一直在用,不过不是太熟悉,觉得这个问题可能在IDE里也能有输入的地方,但是没找到。

#11


引用 9 楼 pengzai512 的回复:
编译javac不需要给参数 运行时java才带上参数
恩,刚知道了,多谢。