从另一个类访问静态方法

时间:2018-03-17 15:26:19

标签: java compilation

我正在尝试从其他类访问static方法,例如:

package mersennepackage;

public class A {
    public static void foo() { ... }
}

import java.primespackage.mersennepackage.*;

public class B {
    public static void main(String[] args) {
        A.foo();
    }
}

我编译了A.java,类文件在我的桌面上: /Users/usr/Desktop/primespackage/mersennepackage

现在,如何使用A.java中的B.java?有人能告诉我编译和执行命令吗?我在MacOsx平台上工作。

我的完整代码是MersennePrimeA

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;
      }
}

和班级TwinPrimesB

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()));
    }
}

1 个答案:

答案 0 :(得分:1)

首先你需要在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文件夹/ dirctory 并将primespackage.zip重命名为primespackage.jar
下一步使用流动推荐编译:

javac -cp "primespackage.jar" TwinPrimes.java 
  

-cp用于将文件挂载到类路径

并且赞扬运行:

java -cp "primespackage.jar" TwinPrimes