0

さて、私は小さなゲーム用のクライアント用の .jar の作成に取り組んでおり、すべての使用方法を知っており、以前は Windows でこれを行っていましたが、現在は Mac を使用しています。これは違いを生むべきではありませんが、知りたい場合は、そこに行きます.

現在、クライアントという名前のEclipseにフォルダーがあります。通常、client.javaはメインクラスですが、EGUIという名前の別のクラスがあります。これには「public static void main(String [] args)」がありますが、私のclient.javaにはファイルには、次のようなメソッドもあります。

 public static final void main(String args[])
{
    try
    {
        anInt957 = 0;
        anInt958 = 0;
        method52(false);//highmem
        aBoolean959 = true;//members
        signlink.storeid = 32;
        signlink.startpriv(InetAddress.getLocalHost());
        client client1 = new client();
        client1.method1(503, false, 765);
        setserver(args[0], "5555");
        return;
    }
    catch(Exception exception)
    {
        return;
    }
}

私の質問だと思いますが、「最終」はそれをメインファイルにしますか? それとも、次のような EGUI のままでしょうか。

import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class EGUI
{ 
public static void main(String args[])
{
                client.main(new String[] {
            "127.0.0.1", "127.0.0.1", "127.0.0.1"
        });
    }
}

それで、私が求めているのは、メインファイルを EGUI に設定しているときに、なぜ機能しないのですか? アプレットが開きますが、毎回「サーバーへの接続エラー」メッセージが表示され続けます。run.bat 情報をコピーして貼り付けてターミナルから実行すると、完全に機能します。どんな助けでも大歓迎です!

4

1 に答える 1

1

public static void main(String args[])コマンドラインからクラスを実行できることを意味します。finalキーワードは、メソッドがサブクラスによってオーバーライドできないことを意味します。

あなたの場合、これはjarのメイン実行クラスにはなりません。メインクラスはMETA-INF/MANIFEST.MFに設定されています。通常、次の行が必要です。

Main-Class: classname

しかし、実際のクラスで。

zip プログラムで jar を開き、MANIFEST.MF を確認します。

あなたのclient.javaには、テスト目的でmainメソッドがあると思います。

于 2012-12-29T22:58:28.223 に答える