usr123
usr123

Reputation: 37

Access static method from another class

I am trying to access a static method from another class, like:

package mersennepackage;

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

and

import java.primespackage.mersennepackage.*;

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

I have compiled A.java and the class file is on my desktop at: /Users/usr/Desktop/primespackage/mersennepackage.

Now, how do I use A.java from B.java? Can someone tell me the compilation and execution commands? I work on a MacOsx platform.


My complete code is class MersennePrime as A:

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

and class TwinPrimes as B:

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

Upvotes: 1

Views: 2520

Answers (1)

Alireza Dastyar
Alireza Dastyar

Reputation: 88

first you need to edit package name in MersennePrime class to 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;
   }
}

and fix import statement like this

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

than zip the primespackage folder/dirctory and rename the primespackage.zip to primespackage.jar
next use flowing commend to compile:

javac -cp "primespackage.jar" TwinPrimes.java 

-cp is used to jar files to class path

and this commend to run :

java -cp "primespackage.jar" TwinPrimes 

Upvotes: 2

Related Questions