java使用作为主参数传递的文件初始化程序(system.getProperty())
我必须用这行代码执行我的程序:
java -DImport=data.txt -Din=input.dat -Dout=output1.dat main.Main
我一直想弄明白怎么做,但没能真正让它工作。我之所以使用Netbeans,是因为我不太熟悉unix终端类路径等等
public static void main(String[] args) {
String fileIn;
fileIn = System.getProperty ("Import");
}
由于前面的语句,fileIn正在变为null
我只是从-DImport=data开始。txt,在我解决它后,我将尝试其他
那部分已经完成了,谢谢。我将尝试将stdin设置为-Din文件而不是键盘。谢谢
我照你们说的做了CartonFox,它的打印导入为空,这意味着fileIn并没有从系统接收任何字符串。getProperty(“导入”)
我也收到了这样的警告:
警告:[弃用]java中的readLine()。木卫一。DataInputStream已被弃用 行=dis。readLine()
我正在使用此页面中的代码:http://www.java-tips.org/java-se-tips/java.io/how-to-read-file-in-java.html,因为我不太了解读者:(
# 1 楼答案
我认为你混淆了两个概念:
您的参数将是:
在代码中,您将两者混合。拆下线路
它将起作用:)
# 2 楼答案
删除
if (args.length == 1)
,因为您不是在分析参数,而是在设置系统属性程序参数跟在主类后面,如下所示
# 3 楼答案
将-Import=foo作为将“导入”配置选项设置为值“foo”的一种方式强>
只需删除if语句:
顺便说一句,我认为Sun选择了-D(而不是其他东西),因为许多C编译器允许您在命令行上使用-D设置宏,这意味着这是在命令行上设置命名“常量”的一种方式。。。这与它在Java中的功能类似
我不知道为什么运行这个程序会得到null,所以这里是我编译它并运行它的一个记录本-带有输出你必须在这份成绩单中看看你在做什么和我在做什么之间的区别: