0

別のプログラム(.jarファイル)を開く必要があるJavaプログラムを作成しました。プログラムのメインクラスでこのコードを使用すると、すべてが正しく機能します。

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);
    }
} 
4

3 に答える 3

3

javaのRuntimeクラスを使用して、そこから次のようにjarを処理できます。

Runtime.getRuntime().exec("java -jar ./ePaymentUpdater.jar")

WhereRuntimeは、実行時にすべてのプロセスを処理し、それらを1つずつ実行します。

于 2012-05-24T10:22:47.117 に答える
1

私はついに問題(および解決策)を見つけました。呼び出された.jarにいくつかの不足しているライブラリがありました(2つのjarを同じフォルダーに置いたので、同じライブラリを共有していましたが、そのうちの1つはない)

ヒントのためのThnaks

于 2012-05-25T10:49:23.513 に答える
0
Runtime.getRuntime().exec("java -jar yourjarfile")
于 2012-05-24T10:15:23.970 に答える