簡體   English   中英

使用Java打開外部非Java文件

[英]Opening an external, non-java file with Java

我正在嘗試訪問文件“ J:\\ Java \\ NetBeansProjects \\放棄的物品清單\\ list.eml”,並使用操作系統定義的默認應用程序將其打開。 可以在命令提示符下通過調用來完成

cd "J:\Java\NetBeansProjects\List of forgoten things"
"list.eml"

所以我決定用

  Runtime.getRuntime().exec("cd \"" + System.getProperty("user.dir") + "\"\n\r" + "\"" + selectedFile.getName() + "\"");

但它一直給我IOException:

 java.io.IOException: Cannot run program "cd": CreateProcess error=2, The system cannot find the file specified

有沒有人想分享任何經驗或建議?

cd不是真正的可執行文件-它是Shell內置命令。

另外,我認為您想使用Java 6中的Desktop ,特別是open方法 ,該方法嘗試使用平台上默認注冊的應用程序(如果存在)打開文件。

http://download.oracle.com/javase/6/docs/api/java/awt/Desktop.html

發生這種情況是因為exec嘗試將cd命令作為一個真實文件執行,而它只是shell(cmd.exe)的命令。

您可以嘗試通過調用cmd /C "cd whateverdir "將命令傳遞給Shell exe或使用.bat文件。

在執行文件之前,您不需要CD到目錄。 只需提供完整路徑即可。

String fileName=System.getProperty("user.dir") + selectedFile.getName();
Runtime.getRuntime().exec(fileName);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM