일부 데이터를 내보내는 Java 응용 프로그램을 작성했습니다. 엑셀 또는 xml 출력 중에서 선택할 수 있습니다. 모든 일이 끝나면 생성 된 파일이 자동으로 열리길 원합니다.xml/jdom을 사용하는 런타임 exec
Excel 항목의 경우 JExcelAPI를 사용하고 XML을 만들려면 JDOM을 사용하십시오.
나는 응용 프로그램이 종료하기 전에 마지막으로 불려 가도록() 메소드 openFile 있습니다
: 나는 엑셀 옵션을 사용하면 파일이 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();
}
}
cmd
/c
D:\test.xls
Process exitValue: 0
XML 출력을 사용하면 수동으로 파일을 수동으로 열어도 작동하지 않습니다.
cmd
/c
D:\test.xml
Process exitValue: 1
그래서 나는 두 번 어플은 엑셀 또는 XML 쓰기를 할 하나의 방법을 제외하고는 동일하기 때문에 문제가 어딘가 JDOM을 가진 것 같다. 하지만 지금까지 성공하지 못했습니다. 아무도 이걸 도와 줄 수 있니?
notepad ++로 열립니다. 나는 그것의 혼자만을위한 exec 코드를 테스트했고 거기에서 잘 작동한다. – dawastl
프로세스 출력에 대한 세부 정보를 얻는 더 나은 프로세스가 업데이트되었습니다. – rolfl
도움을 주셔서 감사합니다. 나는 문제를 직접 발견했다. XML 문서를 만드는 데 사용 된 FileWriter를 닫지 않았습니다. – dawastl