2013-02-05 4 views
0

Java 6 및 Java 7에서 동일한 코드가 실행되고 있지만 Java 7에서는 예상대로 작동하지 않습니다. 6 모든 것이 OK입니다vm 인수의 일식 슬래시

-Dmy.root=D:\mvobs\S.4.8.600_view\ 

내가 자바를 실행하면 :

는 내가 VM 인수에 쓰기

my.root=[D:\mvobs\S.4.8.600_view\\] 

하지만 자바 7에서 내가 가지고 :

my.root=[D:\mvobs\S.4.8.600_view] 

마지막 슬래시는 어디서 났니?

는 또한 (자바 7에서 작동하기 위해)

무슨 문제가 될 수있다 주노에 양식 일식 3.4.0 이동?

+0

왜 Java 6 버전에는 두 개의 '\\'가 있습니까? –

답변

0

어디로 갔는지 모르겠지만 어쨌든 그것에 의존해서는 안됩니다.

경로를 구축하려면 new File(String, String) 또는 new File(File, String)을 사용하십시오. 이러한 방법으로 모든 OS에서 올바르게 작동하기 때문입니다. 그래서 파일을 열려면 my.root

File myRoot = new File(System.getProperty("my.root")); 
File file = new File(myRoot, "filename"); 
+0

코드에서 추가 경로와 연결합니다. 그것은 wrok하는 데 사용하지만 지금은 concat 전에 코드를 변경하고 코드에 슬래시를 추가해야합니다. 같은 코드가 java 6와 java 7에서 작동하기를 원한다. VM 인수에서/everthing이 java 6 & 7 모두에서 잘 작동하는지 기록한다. – user2042494

+0

@ user2042494 : 경로를 빌드하기 위해 더 많은'File' 객체를 생성한다. 지루하고도 안전합니다. –

+0

VM 인수를 구문 분석하는 어떤 것으로 \가 이스케이프 문자라고 생각할 수 있습니다. 그것이'/'가 더 잘 작동하는 이유입니다. –