【发布时间】:2015-03-25 00:38:17
【问题描述】:
我正在使用 XML 文档作为多个相似文档的模板(以相同方式组织的月度报告)。我正在努力寻找最通用的文件路径。我想出了:
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 子句。我怀疑我缺少一个非常基本但重要的属性,即 jars 如何打包工作区并运行它(因为不再有 src 与之关联的目录?)。
我没有找到关于如何从 jarred 应用程序中查找路径、访问、读取、写入、复制等文件的示例或说明。我真的想避免对完整路径进行硬编码,因为代码可能会在各种机器上运行。任何建议或指示将不胜感激。
【问题讨论】:
-
欢迎来到 StackOverflow,Bercheart。您是如何创建
jar文件的?你看过this related question了吗?它解释了如何将 eclipse 项目导出为jar文件,以及如何包含其他组件。 -
Jar 中的对象不是文件,不能使用
File访问。使用Class.getResource访问jar 对象。