How to compile java code that import classes from different directory?
I am stock this problem for a while. And finally I find my anser via follwing link:
http://stackoverflow.com/questions/631682/help-with-packages-in-java-import-does-not-work
http://stackoverflow.com/questions/631682/help-with-packages-in-java-import-does-not-work
Okay, just to clarify things that have already been posted.
You should have the directory
com
, containing the directory company
, containing the directoryexample
, containing the file MyClass.java
.
From the folder containing
com
, run:$ javac com\company\example\MyClass.java
Then:
$ java com.company.example.MyClass Hello from MyClass!
These must both be done from the root of the source tree. Otherwise,
javac
and java
won't be able to find any other packages (in fact, java
wouldn't even be able to run MyClass
).A short example
I created the folders "testpackage" and "testpackage2". Inside testpackage, I created TestPackageClass.java containing the following code:
package testpackage;
import testpackage2.MyClass;
public class TestPackageClass {
public static void main(String[] args) {
System.out.println("Hello from testpackage.TestPackageClass!");
System.out.println("Now accessing " + MyClass.NAME);
}
}
Inside testpackage2, I created MyClass.java containing the following code:
package testpackage2;
public class MyClass {
public static String NAME = "testpackage2.MyClass";
}
From the directory containing the two new folders, I ran:
C:\examples>javac testpackage\*.java C:\examples>javac testpackage2\*.java
Then:
C:\examples>java testpackage.TestPackageClass Hello from testpackage.TestPackageClass! Now accessing testpackage2.MyClass
Does that make things any clearer?
留言