【问题标题】:Jar Maker -- Which is the main class?Jar Maker - 哪个是主要课程?
【发布时间】:2012-12-14 17:28:54
【问题描述】:

好的,所以我正在为一个小游戏的客户端制作一个 .jar,我知道如何使用所有东西,并且以前在 windows 上做过,现在我在 mac 上。这不应该有什么不同,但如果你想知道,那就去吧。

现在,我在 Eclipse 中有一个名为 client 的文件夹,现在通常 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 信息并粘贴它通过终端运行它时,它运行良好!非常感谢任何帮助!

【问题讨论】:

  • 看起来很像您的具体问题是您试图让小程序连接到 IP 地址为 127.0.0.1 的服务器。但是……那是环回接口地址。你不应该提供服务器的真实IP地址吗?这又与main() 方法无关。
  • @BalusC,这应该是我自己的个人测试客户端,当我编写服务器的源代码(实际游戏)时,我希望它连接到我的本地 IP因为它还没有公开。

标签: java jar main final


【解决方案1】:

public static void main(String args[]) 表示您可以从命令行执行该类。 final 关键字表示该方法不能被子类覆盖。

在您的情况下,这不会使其成为 jar 的主要执行类。主类在META-INF/MANIFEST.MF中设置。通常它应该有一行:

Main-Class: classname

然后是实际的课程。

所以用 zip 程序打开 jar,然后检查 MANIFEST.MF。

您的 client.java 有一个 ma​​in 方法,我想是出于测试目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 2014-02-23
    • 2023-04-08
    • 2017-05-22
    • 2014-01-24
    相关资源
    最近更新 更多