【发布时间】:2012-08-14 00:24:33
【问题描述】:
我有一个简单的解析程序,它需要几个文件并将它们组合起来。然后它会生成一些输出文件到工作目录。当我在 Eclipse 中运行这个程序时,它会生成所有需要的输出文件。但是,当我使用 eclipse 中生成的 jar 运行它时,它只会创建三个输出文件中的两个。这让我觉得 jar 文件的生成方式有问题,但似乎找不到任何答案。
我已经尝试更新一些 java,我相信它是使用 java 5 编写的。我只是将 Vectors 更改为 ArrayLists,将 FileOutputStream 更改为 FileWriter。
我必须下载 javax.mail 以获取所需的库并将这些 jar 文件添加到我在 Eclipse 中使用的 java6 库中。我试过删除类并生成新类。我试图检查 jar 文件的权限以确保我可以访问它。我想我只是不确定从哪里开始。
我还尝试将其打包为 jar 文件而不是可运行的 jar 文件,因为它为我提供了更多关于包含哪些内容的选项。但是,即使它是可执行文件,我也无法运行这种类型的 jar 文件。我已经多次重新创建 jar 文件,但没有任何运气。
人们遇到很多问题,UTF-8 在 jar 文件中无法正确显示,但在 eclipse 中却很好。然而,他们的 jar 文件正在生成文本文件,而我的只是没有生成文本文件。
更新:有趣的是,如果我将代码块移动到它自己的类中并将其作为单独的 jar 运行,它将起作用。所以现在的解决方案是有两个jar文件。
这是未生成文件的代码:
private static void parseCRNOnly() {
try {
//file to write to
File new_file = new File("CRNOnlyClean.txt");
FileWriter out = new FileWriter(new_file);
//file to read from
File file = new File("CRNOnly.txt");
FileReader reader = new FileReader(file);
BufferedReader buf = new BufferedReader(reader);
try{
String str;
String temp = "\r";
String nl = "\r\n";
String tab = "\t";
str = buf.readLine();
while (str != null && !str.isEmpty()) {
StringTokenizer tokenizer = new StringTokenizer(str," \t");
int column = 0;
while(tokenizer.hasMoreTokens()) {
column++;
temp = tokenizer.nextToken();
if(column == 8){
break;
}
out.write(temp);
out.write(tab);
}
out.write(nl);
str = buf.readLine();
}
out.close();
} catch(IOException e0){
System.out.println("Error Reading From CRNOnly.txt");
JOptionPane.showMessageDialog(null, "Error Reading From CRNOnly.txt");
}
} catch(FileNotFoundException e1){
System.out.println("File CRNOnly.txt Not Found");
JOptionPane.showMessageDialog(null, "File CRNOnly.txt Not Found");
} catch (IOException e) {
System.out.println("Error Reading from FileWriter");
JOptionPane.showMessageDialog(null, "Error Reading from FileWriter");
}
【问题讨论】:
-
请考虑一些段落;这是一堵坚硬的文字墙。考虑删除不相关的部分(例如“我阅读了一篇博客,但没有帮助”)。
-
抱歉,我只是想把所有信息都弄出来。
-
这是我第一次在这里发帖,人们似乎不喜欢我原来的帖子,因为我没有发布足够的信息。我试过删除它。
-
所以这个静态方法从一个文件读取并写入另一个文件。是不是有几种这样的方法,除了一种在 Eclipse 内外工作,而一种方法只在 Eclipse 中工作?当方法不起作用时,是否有任何消息(来自异常处理)?