我如何能够在一个可执行文件中运行这两个类。如果答案非常简单,我对此很新。如果你能够引导我完成它,我将不胜感激。感谢您抽出宝贵时间作出回应。
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(')');
}
}
}
答案 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应用程序;否则它将无法启动控制台以显示您的程序