2011-11-17 62 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(new File(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操作系统上默认不存在的环境变量。我的Ubuntu发行版为'System.getenv(“HOMEDRIVE”)返回'null'。既然有可用的便携式解决方案,我会极大地阻止你的答案。 –

+0

System.getProperty(“user.home”) –

+0

是的,而且问题中的字符串“c:\\ SRC \\ shankar \\ a.doc”在您的Ubuntu发行版中不起作用! ! – hurtledown

相关问题