Java 从另一个类访问静态方法
我试图从另一个类访问Java 从另一个类访问静态方法,java,compilation,Java,Compilation,我试图从另一个类访问静态方法,如: package mersennepackage; public class A { public static void foo() { ... } } 及 我已经编译了A.java,类文件位于我的桌面上: /Users/usr/Desktop/primespackage/mersennepackage 现在,如何使用B.java中的A.java?有人能告诉我编译和执行命令吗?我在MacOsx平台上工作 我的完整代码是classMersenneP
静态
方法,如:
package mersennepackage;
public class A {
public static void foo() { ... }
}
及
我已经编译了A.java
,类文件位于我的桌面上:
/Users/usr/Desktop/primespackage/mersennepackage
现在,如何使用B.java
中的A.java
?有人能告诉我编译和执行命令吗?我在MacOsx平台上工作
我的完整代码是class
MersennePrime
asA
:
package mersennepackage;
public class MersennePrime {
public static boolean checkForMersenneprime(int n) {
int i;
double d;
d = Math.log(n + 1) / Math.log(2);
i = (int)(Math.floor(d));
if (d - i == 0)
return true;
return false;
}
}
类TwinPrimes
asB
:
import java.util.*;
import java.primespackage.mersennepackage.*;
class TwinPrimes {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number");
System.out.println(MersennePrime.checkForMersenneprime(sc.nextInt()));
}
}
首先,您需要将MersennePrime类中的包名编辑为primespackage.mersennepackage
package primespackage.mersennepackage;
public class MersennePrime{
public static boolean checkForMersenneprime(int n){
int i;
double d;
d=Math.log(n+1)/Math.log(2);
i=(int)(Math.floor(d));
if(d-i==0)
return true;
return false;
}
}
然后像这样修改导入语句
import java.util.*;
import primespackage.mersennepackage.*;
public class TwinPrimes{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number");
System.out.println(MersennePrime
.checkForMersenneprime(sc.nextInt()));
}
}
然后压缩primespackage文件夹/目录
并将primespackage.zip重命名为primespackage.jar下一步使用以下命令进行编译:
javac -cp "primespackage.jar" TwinPrimes.java
-cp用于将文件jar到类路径
这就是我们要运行的:
java -cp "primespackage.jar" TwinPrimes
请使用IDE。不从计算机上的随机文本文件编译JavaDesktop@usr123:你说的是
PrimeMain
,但我刚才看到的是TwinPrimes
类。这里有一个小错误。我不明白你的问题和那些主要的东西有什么关系。你的问题基本上就是“如何从另一个类调用一个方法”。您可以简单地从问题中删除所有不相关的内容,并用3行显示一个示例:public class A{public static void foo(){…}
和public class B{public static void main(String[]args){B.foo();}
。如果您认为我完全错过了您的观点,请随时恢复我的编辑。感谢您指出错误!!现在开始工作了。
java -cp "primespackage.jar" TwinPrimes