如何创建可以运行这两个类的第三个类?

时间:2017-09-18 01:18:29

标签: java

我如何能够在一个可执行文件中运行这两个类。如果答案非常简单,我对此很新。如果你能够引导我完成它,我将不胜感激。感谢您抽出宝贵时间作出回应。

import java.util.HashSet;

public class Prog2 {
    public static boolean sameElements(int[] A, int[] B){
        boolean same = false;
        HashSet<Integer> hashSet = new HashSet<Integer>();
        for(int i = 0; i < A.length; i++){
            hashSet.add(A[i]);
        }
        for(int i = 0; i < B.length; i++){
            if(hashSet.contains(B[i])){
                hashSet.remove(B[i]);
            }
        }
        if(hashSet.isEmpty()){
            same = true;
        }
        return same;
    }
}

public class Prog3 {
    public static void inRun(int[] A){
        boolean inRun = false;
        for(int i = 0; i < A.length; i++){
            if(inRun) {
                if (A[i] != A[i - 1]) {
                    System.out.print(')');
                    inRun = false;
                }
            }
            else{
                if(i + 1 < A.length && A[i] == A[i + 1]){
                    System.out.print('(');
                    inRun = true;
                }
            }
            System.out.print(" " + A[i] + " ");
        }
        if(inRun){
            System.out.print(')');
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您的课程没有main个功能,因此无法执行。 但如果他们确实有main个函数:

首先,它们都是公共类,因此您需要将每个类放在自己的文件中。 (即Prog2.java和Prog3.java)此外,它们将位于同一个包中,因此您可以将package com.domain.progs;添加到两个文件的顶部。

其次,您必须从另一个类调用一个类。所以把它放在Prog2的main函数中:

Prog3.main();

第三,您需要将整个包放在一个jar文件中。 源目录中的包结构应如下所示:

com
|____domain
    |_______progs
           |______Prog2.java
           |______Prog3.java

编译文件,使你的out(或bin等)看起来像^但是使用类文件而不是java文件。

第四,创建一个清单文件,指定要执行的类。 将其输入名为MANIFEST.MF 的文件中(确保不包含任何尾随空格)

Main-Class: com.domain.progs.Prog2

最后,将所有内容添加到jar文件中。 我不记得使用的确切语法,但我知道它从这开始:

jar cvmf ...

只需查看jar命令语法,并确保包含清单文件和包含类文件的com目录,而不是java文件

就是这样。您现在可以运行您的jar文件。 为此,请键入以下命令:

java -jar JarFileName.jar

P.S。 如果你想要的东西,你可以双击运行,它必须是一个GUI应用程序;否则它将无法启动控制台以显示您的程序