2011-11-17 2 views
0
Desktop desktop = null; 
    if (Desktop.isDesktopSupported()) 
    { 
    desktop = Desktop.getDesktop(); 
    } 

    desktop.open(new File("c:\\SRC\\shankar\\a.doc"));  

여기서 드라이브 C:을 지정하고 싶지 않습니다.우리 자신의 패키지에서 java에서 Word 문서를 여는 방법은 무엇입니까?

나는

desktop.open(new File("\\\SRC\\\shankar\\\a.doc")); 

처럼 내 코드를 어떤 방법이 있나요해야합니까?

+0

는 흠, 이상은, 코드 나를 위해 잘 작동 –

답변

1

앱의 클래스 경로에있는 파일을 사용할 수 있도록 다음

classLoader.getResource("/path/in/class/path")

는 당신에게 파일의 위치를 ​​줄 것이다 사용합니다.

참고 : 파일이 성취 된 파일을 벗어나야합니다. 그렇지 않으면 this

+0

의 java.net.URL imgUrl에 = getClass() .getResource ("/ a.doc"); 나는 이런 식으로 사용했습니다 ... 그 열기가 ...하지만 jar 파일로 변환 할 때 열지 못했습니다 ... – jcrshankar

+0

위의 링크에서 FileUtils.openOutputStream 등의 코드를 찾았습니다 ...로드해야합니까? 그런 식으로 .. – jcrshankar

+0

예 단순히 jar 파일을 파일 시스템으로 파일 –

0

사용 * NIX 표기법과 같은 코드를 사용하여 추출해야합니다

/SRC/shankar/a.doc 
+0

으로 복사합니다. [File.listRoots] (http://download.oracle.com/javase/7/docs/api/java/)를보십시오. io/File.html # listRoots % 28 % 29) –

+0

완전성을 위해 :'desktop.open (새로운 파일 (URI.create ("file : ///SRC/shankar/a.doc")));' –

+0

ya , 죄송합니다. 질문을 편집하는 동안 나는 하나의 여분 '/'을주었습니다. – jcrshankar

-1
Desktop desktop = null; 
if (Desktop.isDesktopSupported()) { 
    desktop = Desktop.getDesktop(); 
} 
String drive = System.getenv("HOMEDRIVE"); 
desktop.open(new File(drive + "\\SRC\\shankar\\a.doc")); 
+0

Hurtle은 Microsoft 운영 체제가 아닌 곳에서는 기본적으로 존재하지 않는 환경 변수에 따라 달라집니다. 예를 들어 내 우분투 배포판은'System.getenv ("HOMEDRIVE")'에'null '을 반환합니다. 사용할 수있는 휴대용 솔루션이 있기 때문에 나는 당신의 답을 매우 낙담시킬 것입니다. –

+0

System.getProperty ("user.home") –

+0

예, 질문에있는 "c : \\ SRC \\ shankar \\ a.doc"문자열도 우분투 배포판에서 작동하지 않습니다 !!! !! !! – hurtledown

관련 문제