我已经开发了打算在其他计算机上运行的ExcelReader / Writer程序。在此程序中,它接收一个excel.xls
硬数据,将其读取并以格式化的方式将其写入excel.xlsx
文件,然后将其保存在目录“ CoC-Forms
”中。
为了减少运行程序的步骤,我将空的.xlsx
文件写入了项目中。但是,将其导出到可执行jar(以便在其他计算机上运行)时,我似乎在访问此空表格时遇到麻烦。我知道这可能是一个非常简单的答案,但是我在整个工作日中都被困住了,这完全停止了我的进度。
这是我的环境的摘要。左侧是Intellij中的我的Project目录(CoC.xlsx是空格式),右侧的高亮分别是我尝试访问文件的位置和发生错误的位置。
JOptionPane.showMessageDialog(null,"About to look for CoC");
//fileFrom = new File(s + "/out/production/XML Reader/CoC.xlsx");
//fileFrom = new File("/XML Reader/out/production/XML Reader/CoC.xlsx");
//fileFrom = new File("CoC.xlsx");
//fileFrom = new File(ExcelWriter.class.getResource("CoC.xlsx").getPath());
CodeSource src = ExcelWriter.class.getProtectionDomain().getCodeSource();
/*if (src != null) {
URL url = new URL(src.getLocation(), "CoC.xlsx");
fileFrom = new File()
System.out.println(url);
} else {
JOptionPane.showMessageDialog(null,"Failed");
} */
fileFrom = new File(new File("."), "CoC.xlsx");
最佳答案
通过让人们下载整个项目文件夹,从执行点开始使用../../引用文件,然后更深入地查找文件路径以查找放置文件的位置,我解决了我的问题。断断续续,但它可以解决问题。