我编写了一个java应用程序,可以导出一些数据。您可以在excel或xml输出之间进行选择。完成所有操作后,我希望创建的文件自动打开。
对于excel,我使用jexcelapi;对于创建xml,我使用jdom。
我有一个方法openfile(),在应用程序退出之前最后调用它:
private void openFile(File file) {
try {
String[] cmds = { "cmd", "/c", file.getAbsolutePath() };
for (String s : cmds) {
System.out.println(s);
}
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmds);
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t) {
t.printStackTrace();
}
}
当我使用excel选项时,文件打开得很好,openfile()的输出如下:
cmd
/c
D:\test.xls
Process exitValue: 0
对于xml输出,我将不工作,尽管我可以手动打开文件。
cmd
/c
D:\test.xml
Process exitValue: 1
所以我想问题出在jdom的某个地方,因为这两次应用程序都是相同的,除了一个方法我编写excel或xml。但我到现在还没有成功。有人能帮我吗?
1条答案
按热度按时间e0bqpujr1#
如果test.xml文件是有效的,那么执行xml文件时出现问题并不是jdom的错。。。。。问题更可能是因为您没有与.xml文件的正确类型的windows文件关联(或者没有您期望的关联)。
打开cmd窗口时会发生什么:winkey->r要打开run对话框,请在框中键入cmd,然后在“dos”提示下键入
cmd /c D:\test.xml
. 发生了什么:对我来说,它在internet explorer中打开xml文件,它为您做了什么?
编辑:好的,它从命令行打开。现在,要调试流程,您需要从命令中捕获标准输出/错误。我推荐如下:
一旦你做了这些更改,检查(也许在这里发布…)错误和输出文件的内容。