我有两门课:
MyApplication
图书馆
库已经编译成Library.class,源代码不再可用。我现在正在尝试从源代码编译MyApplication。MyApplication依赖于图书馆。该库的包名为org.myCompany。我尝试将我的类路径设置为:
set CLASSPATH=C:\java\project\org\myCompany\Library.class;.它产生了以下javac编译器错误消息:
MyApplication.java:33: cannot find symbol
symbol: class Library
location: class MyApplication
Library theLibrary = new Library();所以我把我的类路径改为:
set CLASSPATH=C:\java\project\;.产生了完全相同的错误信息。
如何将Windows设置为包含Library.class文件?它应该指向包含org\myCompany子文件夹的文件夹吗?还是直接指向类文件?还是包含类文件的文件夹(即使类在包中并属于子文件夹)?
在set命令之后执行echo % classpath %,并且正确设置类路径。我还制作了一个ant build.xml文件,并遇到了同样的问题。事实上,ant -verbose确认我的类路径被正确设置了。
发布于 2010-09-10 14:16:42
您不能像这样在类路径中添加一个类。你有三个解决方案:
将这个类添加到其他编译类的路径中(关于directories)
中)。
对于您的问题,省吃俭用:外部依赖通常被打包到jar文件中。
发布于 2010-09-10 14:27:04
首先,非常不鼓励使用CLASSPATH环境变量。最好的办法就是让你忘记它的存在。使用-cp命令行开关或类似方法设置类路径。
其次,每个类路径条目都代表一个位置,类加载器将根据包层次结构开始查找.class,也就是说,它将在任何类路径条目中的子文件夹org/myCompany中查找类org.myCompany.Library。
因此,如果
添加类路径条目C:\java\project\
C:\java\project\org\myCompany\Library.class
org.myCompany (大写问题!)
MyApplication类有一个import org.myCompany.Library;那它真的应该起作用。
发布于 2010-09-10 14:16:48
如果您的.class文件不在jar文件中,请将类路径指向类包所在的父dir,例如,对于类org.myCompany.Library,将CP指向包含org/myCompany的目录。
如果您的.class文件包含在某些jar文件中,请将该jar的完整路径添加到类路径中。
https://stackoverflow.com/questions/3685260
复制相似问题