问题
This is annoying.
I have a directory structure like this
-lib
--some jar files
-packageName
--Main.java
--SomeOtherPackage
--SomeOtherJavaClass.java
Main.java imports SomeOtherPackage
. And both java files uses jars in the lib.
What I do is add the jar files independently in the CLASSPATH. And then run as: javac packageName/Main.java
but it gives the error that Package not found SomeOtherPackage
. Shouldn't it automatically realize the dependency and build SomeOtherPackage
as well? What would be the javac command and the classpath for the above case?
Thanks
回答1:
The normal practice is to add the package root to the classpath.
When you're already in the package root, use -cp .
. E.g.
cd /path/to/all/packages
javac -cp . packageName/Main.java
If you want to include JAR files as well, use the ;
(or in *nix, the :
) as classpath path separator:
javac -cp .;lib/file.jar packageName/Main.java
To save the time in repeating all the typing of shell commands, use a .bat
(or in *nix a .sh
) file. Or just an IDE if you're already familiar with java/javac and so on.
回答2:
You need to add packageName to the CLASSPATH so it can find SomeOtherPackage
来源:https://stackoverflow.com/questions/3041543/package-not-found-javac