如何从另一个 .class 文件运行 Java 的 .class 文件?(Java 新手)

9

我一直在Netbeans IDE中通过右键单击项目资源管理器中的.java文件来运行不同的Java .java文件(通常在Netbeans的左上部分)。

然而,我一直在谷歌上搜索如何使用代码运行一个类文件运行另一个类文件,但是没有成功。

我有一个名为"loadanotherfile"的项目,其中包含两个文件,即:Loadanotherfile.java和otherfile.java

我试图让Loadanotherfile.java运行otherfile.java,但我不确定如何做。我了解到Classloaders和URLClassloaders,但这些方法似乎不适用于我的目的,即运行另一个.java文件。

以下是我提到的两个文件的代码。

Loadanotherfile.java

package loadanotherfile;

public class Loadanotherfile {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("Hello World!");
        // TODO code application logic here
    }
}

otherfile.java

package loadanotherfile;

public class otherfile {

    public static void main(String args[])
    {
        System.out.println("This is the other file.");
    }
}

我感觉这个任务与使用 "import" 语法有关(即类似 import loadanotherfile.*),但即使我的猜测是正确的,我仍然不确定如何使用代码使我的 Loadanotherfile.java 运行 otherfile.java。
我该如何使用 Loadanothefile.java 加载 otherfile.java?
祝好!

1
运行其他类文件的目的不明确。要将一个类加载到内存中,您可以使用Class.forName("className");方法,通过指定类名作为参数来实现。 - Chaitanya K
4个回答

12

在 Loadanotherfile.java 文件中

otherfile.main(args);

7
将两者编译在一起,然后从Loadanotherfile开始。
otherfile.main(args);

这个技巧将会有所帮助。由于您位于相同的中,因此无需导入。请注意链接的教程。

然而,我建议先研究类实例化以及创建新类的实例来进行调用。从静态方法中调用静态方法并不是一个很好的面向对象的做法。


是的,这就解决了问题,还必须添加类似于Matt Clark答案中的一行代码(otherfile otherFile = new otherfile();)谢谢! - Last Man Standing
@LastManStanding,您不必添加那行额外的代码。没有它也可以正常工作。 - maba
@LastManStanding,如果你必须这样做的话,那么你所说的otherfile 中的 main() 不是 static 的。 - rid
@rid 或者他弄混了大小写。他可能尝试使用 otherFile.main(args); 而不是 otherfile.main(args); - maba

2

试一下这个:

className.main(Args){
}

这个有效!我已经亲自测试过了。


0

请检查public void main行。如果有IOException,则在Loadanotherfile.java中插入;如果没有,则不需要插入。

请使用此代码:

otherfile.main(args);{
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接