1
我正在使用XML文檔作爲多個相似文檔(月度報告的組織方式相同)的模板。我一直在努力尋找最通用的文件路徑。我想出了:Runnable .jar和Eclipse運行之間的行爲是非常不同的
File f1 = new File("src/Statements/TemplateStatement.xml");
其中/Statements/
是在Eclipse中src
選項卡下的文件夾,如果它只是另一個包。
然後:
File TemplateStatement = new File(f1.getAbsolutePath());
if (TemplateStatement.exists()) {
// ...do some stuff
} else {
JOptionPane.showMessageDialog(null, null,
"ERROR: Transaction template not found.", JOptionPane.OK_CANCEL_OPTION);
System.exit(0);
}
當從Eclipse中運行,它的偉大工程,我的東西得到執行。在我的桌面(同一臺機器和文件系統)上以.jar
的身份運行時,每次都打到else
子句。我懷疑我缺少一個非常基本但重要的屬性,它如何打包工作空間並運行它(因爲沒有與之關聯的src
目錄?)。
我沒有找到有關如何從震驚的應用程序中找到路徑,訪問,讀取,寫入,複製等文件的例子或解釋。我真的想要避免對完整路徑進行硬編碼,因爲代碼可能會在各種機器上運行。任何建議或指針,將不勝感激。
歡迎來到貝爾切爾特的StackOverflow。你是如何創建你的jar文件的?你有沒有看過[這個相關的問題](http://stackoverflow.com/q/423938/983430)呢?它解釋瞭如何將eclipse項目導出爲'jar'文件,以及如何包含其他組件。 – 2015-03-25 07:45:11
Jar中的對象不是文件,無法使用「文件」進行訪問。使用'Class.getResource'來訪問jar對象。 – 2015-03-25 08:11:46