0

私は Netbeans 7.1.2 を使用しています。メイン クラスが別のプロジェクトから別のメイン クラスを呼び出そうとする Java アプリケーションを実行しようとしています。

public class Main {
    public static void main(String[] args) {
        com.XXXX.XXXX.main.Main.main(new String [] {

NetBeans でクラスパスを設定しようとしたときに、プロジェクト プロパティにライブラリ オプションが見つかりませんでした。

ここに画像の説明を入力

私のプロジェクトにはライブラリフォルダーもありません。では、クラスパスを設定して他のプロジェクトのメイン クラスにアクセスするにはどうすればよいでしょうか。

前もって感謝します、

4

1 に答える 1

1

別のクラスからメイン メソッドを呼び出そうとする方法が正しくありません。それが機能していない理由だと思います。もう1つのことは、質問があまり明確ではなく、コードからは、同じクラスのメインメソッドを呼び出そうとしているように見えることです。

しかし、私が理解している限り、2 つのプロジェクトがあり、最初のプロジェクトのメイン メソッドから 2 番目のプロジェクトのメイン メソッドを呼び出そうとしています。

  • 最初のステップは、2 番目のプロジェクトをjarファイルとしてビルドすることです。次に、このプロジェクトを閉じて、忘れてください。

  • 2 番目のステップは、最初のプロジェクトを開発し、2 番目のプロジェクトの jar をライブラリとしてこのプロジェクトに追加することです。これが完了すると、あとは簡単なコーディングです。

以下は、機能を実現するためのコード スニペットです。

2番目のプロジェクトの主な方法(ライブラリになるもの)

public class second {

    public static void main(String[] args) {
        System.out.println("This statement comes from the main method in the jar .");
        System.out.println("total params passed are: " + args.length);
        for (String string : args) {
            System.out.println("param is: " + string);
        }
    }
}

最初のプロジェクトのメイン メソッド(ライブラリのメイン メソッドを呼び出すもの)

public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {

    System.out.println("This statement is from main method in the program.");


    /**
    * This is the class name. and it needs to be correct.
    * You do not need to mention project name or library name. 
    * newpackage is a package in my library and second is a class name in that package
    */
    final Class _class = Class.forName("newpackage.second");

    //here we mention which method we want to call   
    final Method main = _class.getMethod("main", String[].class);

    //this are just parameters if you want to pass any
    final String[] params = {"one", "two", "three"};

    try {
        //and finally invoke the method
        main.invoke(null, (Object) params);
    } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
        Logger.getLogger(JavaApplication2.class.getName()).log(Level.SEVERE, null, ex);
    }

以下は、ライブラリ プロジェクトを追加した後のプロジェクト構造の外観です。

于 2014-08-14T13:56:36.010 に答える