문제

이 라인으로 내 프로그램을 실행해야합니다.

java -DImport=data.txt -Din=input.dat -Dout=output1.dat main.Main

나는 이것을하는 방법을 알아 내려고 노력했지만 실제로 작동하지는 않습니다. 나는 Unix 터미널 클래스 경로 등을 잘 지키지 않기 때문에 Netbeans를 사용하고 있습니다.

public static void main(String[] args) {    
    String fileIn;
    fileIn = System.getProperty ("Import");
}

이전 진술의 결과로 FileIn이 NULL을 얻고 있습니다.

나는 단지 -dimport = data.txt로 시작하여 해결 한 후 다른 사람들을 시도 할 것입니다.


그 부분이 완료되었습니다. 감사합니다. 키보드 대신 stdin을 -din 파일로 설정해 보겠습니다. 감사


나는 당신이 말한 것을 cartoonfox, 그 인쇄 수입 null이라는 말은 filein이 system.getProperty ( "import")에서 어떤 문자열도받지 못한다는 것을 의미합니다.

나는 또한이 경고를 받고있다 :

경고 : java.io.datainputStream의 [readline () ()가 감가 상각 된 줄 = dis.readline ();

이 페이지에서 코드를 사용하고 있습니다. http://www.java-tips.org/java-se-tips/java.io/how-to-read-file-in-java.html 나는 독자들을 많이 모르기 때문에 :(

도움이 되었습니까?

해결책

나는 당신이 두 가지 개념을 혼란스럽게 생각한다고 생각합니다.

  • 자바 args 클래스 이름에 전달되는 매개 변수를 나타냅니다. 그래서 당신이 전화하면 :

Java Main.Mymain 0 1 2

당신의 args 될거야:

args [0] = 0

args [1] = 1

args [2] = 2

  • 자바 속성 당신이 -d로 전달하는 것입니다 -dimport = data.txt

코드에서 둘 다 혼합하고 있습니다. 라인을 제거하십시오

if (args.length == 1)

그리고 그것은 작동합니다 :)

다른 팁

하락 if (args.length == 1) 인수를 구문 분석하는 것이 아니라 시스템 속성을 설정합니다.

프로그램 인수는 이와 같은 메인 클래스 이후에 진행됩니다

main.Main arg1=val arg2=val2

"foo"를 가치있게하기 위해 "가져 오기"구성 옵션을 설정하는 방법으로 -mort = foo를 생각하십시오.

if 문을 삭제하기 만하면됩니다.

public static void main(String[] args) {

String fileIn;
fileIn = System.getProperty ("Import");
System.out.println("Import "+fileIn);
}

BTW 나는 SUN이 -D를 선택했다고 생각합니다 (다른 것과 반대되는 것) 많은 C 컴파일러가 -D를 가진 명령 줄에서 매크로를 설정할 수 있기 때문에 - 명령에서 "상수"라는 이름을 설정하는 방법이라는 것을 의미합니다. -Line ... 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top