初始化程序与文件的通过作为主要论点(系统。getProperty())
-
18-09-2019 - |
题
我执行我的计划与这一行:
java -DImport=data.txt -Din=input.dat -Dout=output1.dat main.Main
我一直试图弄明白如何做到这一点,但真的不能得到它的工作。我使用//需要将物品寄因为我并不真正取得进unix类路径终端等等。
public static void main(String[] args) {
String fileIn;
fileIn = System.getProperty ("Import");
}
fileIn是空的结果作为先前的发言。
我只是开始-DImport=data.txt之后,我解决它,我会尝试的其他人。
那部分是的,谢谢你。我会试试的设置stdin作-Din的文件,而不是键盘。感谢
我做了什么你说cartoonfox,其印刷的进null这意味着fileIn不接收任何串系统。getProperty("进口");
我也得到这个警告:
警告:[嘲]readLine()。io.进已经被弃用 线=dis。readLine();
我在代码使用从这个网页: http://www.java-tips.org/java-se-tips/java.io/how-to-read-file-in-java.html 因为我不知道很多的读者:(
解决方案
我认为你是混乱的2概念:
- Java args 指的是来传递的参数之类的名字。所以如果你呼叫:
java主。MyMain0 1 2
你的 args 将是:
args[0]=0
args[1]=1
args[2]=2
- Java 性能 是什么你是通过与维为在 -DImport=data.txt
在代码你是混合这两者。删除线
如果(args.长==1)
它将工作:)
其他提示
降if (args.length == 1)
你不是解析参数,但设置系统属性。
程序参数后去主类像这样
main.Main arg1=val arg2=val2
<强>想-Import = FOO作为设置“导入”配置选项设置为值“foo”的一个方式的强>
刚落,if语句:
public static void main(String[] args) {
String fileIn;
fileIn = System.getProperty ("Import");
System.out.println("Import "+fileIn);
}
BTW,我认为太阳之所以选择-D(而不是 - 别的东西),因为大量的C语言编译器允许您设置一个宏用-D在命令行上 - 这意味着它将会是设置一个名为“常量”的方式在命令行...其类似于它做什么用Java。
我不知道为什么你会得到空运行此,所以这里是我的成绩单编译它并运行它 - 与输出您打算来看看的差异与你在做什么和我在做什么在这份成绩单:
Script started on Sat Nov 7 18:16:25 2009
bash-3.2$ cat T.java
public class T {
public static void main(String[] args) {
String fileIn;
fileIn = System.getProperty ("Import");
System.out.println("Import "+fileIn);
}
}
bash-3.2$ javac T.java
bash-3.2$ java -DImport=data.txt -Din=input.dat -Dout=output1.dat T
Import data.txt
bash-3.2$ exit
exit
Script done on Sat Nov 7 18:17:07 2009