我知道Java Applets对于它们可以访问和不能访问的内容有很多限制,但我认为JAR是不同的。为了记录,我是JAR文件之类的新手。
我已经为数据输入工具编写了一个GUI,我希望能够将格式化数据写入文本文件。这从程序从Eclipse运行时有效。但是,一旦打包在JAR文件中,我就无法再使用“写入”文件了。它也不会出错。
这里没有单行代码可供分享,但该程序基本上允许用户做的是:
最后一步是我的可运行的JAR让我失望的地方。我点击保存,我的对话框显示所有内容,但是当我检查输出文件夹时,没有生成任何文件。注意:它与错误的路径无关 - 我已经检查过了。正如我上面所说,它适用于Eclipse。
我有什么限制吗?理想情况下,我可以与其他几个人共享此可执行文件,以分配数据输入任务。是否有其他格式用于打包此程序以使其工作? (我花了很长时间在这上面,并希望用Java工作)
下面是我的保存按钮的ActionListener。这就是魔术应该发生的地方:
class WriteToFileListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String command = event.getActionCommand();
if (command.equals(strWriteToFile)){
System.out.println(strWriteToFile);
int warning = JOptionPane.showOptionDialog(frame, "Text",
"Text", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
if (warning == 0)
{
Path path = Paths.get(tfOutputDir.getText() + "\\" + tfFileName.getText() + ".txt");
ArrayList<String> output = new ArrayList<String>();
for (String s : tmp.items)
{
output.add(s);
}
try {
Files.write(path, output);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
答案 0 :(得分:2)
好吧,我想我实际上已经回答了自己的问题,但我真的不明白为什么:
在Eclipse中打包JAR文件时,我选择了“将所需的库打包到生成的JAR中”。这给了我这个问题。
再次尝试时,我选择“将所需的库提取到生成的JAR中”。这解决了这个问题。
对两个选项here之间的差异有一个很好的解释,但我不明白为什么这会影响我的保存能力。也许@ m0skit0对路径有一点看法?它可能一直试图写入JAR吗?