我将如何调用以从单独的程序包运行另一个类?

时间:2019-05-03 03:20:28

标签: java class methods

我目前正在编写一个库存系统程序,我需要一些帮助。我有仓库和产品,产品是仓库的孩子。我一直在尝试,以便在通过if语句和GUI系统(如果输入例如1)选择仓库的情况下,运行javascript文件,该文件会为产品拉出类似的菜单系统。需要运行的文件与我希望从中调用的文件位于单独的软件包中。我将如何处理?我已经尝试了很多,但是失败了

public void showAll() {
    int IID = 0;
    System.out.println("--All depots--");
    System.out.println("ID\tName\t\tTotal Products");
    for (int i = 0; i < this.pm.count(); i++) {
        Depot p = this.pm.getDepot(i);
        System.out.println(p.getId() + "\t" + p.getName()+"\t");
    }
    int num = -1;
    while(num < 0)
    {
    System.out.println("Select:\n(1): Depot 1\n(2): Depot 2\n(0): Exit");
    num = readInt(0, Integer.MAX_VALUE);
    }
    if (num == 1) {
        // run the file productconsole for the first depot
    }
    else if (num ==2) {
        // run the file productconsole2 for the second depot
    }

}

我希望在注释所在的位置,我能够运行产品控制台Java文件(分别为ProductConsole1和ProductConsole2)。

谢谢你:D

1 个答案:

答案 0 :(得分:0)

尝试一下...

鉴于该项目的情况如下

Java project

要使用其他包中的类,则需要确保导入包和该类。代码如下:


ThisClass.java

package bar;
import java.util.Scanner;

import foo.pkg.ThatClass;

public class ThisClass {
    public static void main(String[] args) {
        try {
            Scanner in = new Scanner(System.in);

            String answer = "";

            System.out.print("Please enter Y or N: ");
            answer = in.next();

            if (answer.toUpperCase().equals("Y"))
                // Call another class' main function.
                ThatClass.main(null);
            else {
                System.out.println("You entered the wrong value.");
            }

            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

ThatClass.java

package foo.pkg;

public class ThatClass {
    public static void main(String[] args) {
        System.out.println("ThatClass is here!");
    }
}

结果:

  

请输入Y或N:Y

     

ThatClass在这里!

希望这会有所帮助:)