我已經編寫了一個應該打開另一個程序(這是一個.jar文件)的Java程序。如果我在主類我的程序中使用此代碼,一切工作正常:Java如何從代碼中運行另一個.jar程序來響應按鈕點擊
File logFile = new File("./ePaymentUpdater.jar");
Desktop.getDesktop().open(logFile.getCanonicalFile());
//or
Runtime.getRuntime().exec("java -jar ePaymentUpdater.jar");
但如果我貼在事件相同的代碼在響應用戶點擊一個按鈕,它並沒有因爲它的工作應該: 該程序似乎運行,因爲它創建一個文件夾應該是(這個代碼是在被調用的程序的主類),但它不顯示它應該的jFrame
看來,我不能從另一個程序的框架內打開框架...
這是我的主類:
package prove_idiote;
import java.awt.Desktop;
import java.io.File;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
// try {
// Runtime.getRuntime().exec("java -jar ePaymentUpdater.jar");
// } catch (Exception e) {
// System.out.println(e);
// }
Tester tester = new Tester();
tester.setVisible(true);
}
}
這是我的按鈕事件:
private void ExecuteActionPerformed(java.awt.event.ActionEvent evt) {
try {
JOptionPane.showMessageDialog(null, "before" ,"ATTENZIONE!",JOptionPane.WARNING_MESSAGE);
Runtime.getRuntime().exec("java -jar ePaymentUpdater.jar");
JOptionPane.showMessageDialog(null, "after" ,"ATTENZIONE!",JOptionPane.WARNING_MESSAGE);
} catch (Exception e) {
System.out.println(e);
}
}
定義「不起作用」!在事件處理程序中執行該代碼時會發生什麼?任何錯誤/消息? –
Desktop.open()使用windows文件關聯來打開和執行程序。如果他們沒有正確設置它不會工作。 ePaymentUpdater.jar是否帶有主類集的MANIFEST.MF文件? – Stephan
沒有錯誤消息,它似乎只是調用的.jar文件不運行 PS:我現在看到.jar運行,因爲它創建一個文件夾,因爲它應該是,但它不顯示它應該(一個jForm) – Maik