估计还是classpath的问题,你确定你要引用的包在你的classpath中间能找到么?比方说:你有一个没有用jar打包的包ray.of.dawn,你的classpath为".;d:\test"你想这样用:
import ray.of.dawn.*;那么应该具有的目录结构是这样的:d:\test\ray\of\dawn\*.class或者[当前目录]\ray\of\dawn\*.class
import ray.of.dawn.*;那么应该具有的目录结构是这样的:d:\test\ray\of\dawn\*.class或者[当前目录]\ray\of\dawn\*.class
解决方案 »
- 问个非常基础的问题
- 怎样用js完成图片的旋转加剪裁,并且有实时预览效果
- 【自学新手求助】jsp页面里,如何删除<table>里的一条数据库记录
- JSP版远程管理, 小第做的,完全公司源代码... 欢迎大家拍砖
- 哈哈 新手请教一个问题 天气预报
- 1个插入记录的存储过程,最后返回插入记录的id号,这个结果在java中如何得到?
- 高价求购JSP本科毕业论文
- 急!为什么String delist[]无法取得checkbox中空格后的内容
- https+tomcat证书配置问题
- 一个有关JSP和EXCEL的问题,很急,很急,求大虾帮忙,速速
- Tomcat启动出错提示Exception in thread "main" java.lang.NoClassDefFoundError...
- jsp中javabean的问题,
[当前目录]\ray\of\dawn\*.class 这样的目录,
import ray.of.dawn.*;
如果是放到e:\javacode下的话就可以成功编译运行,拷到其他地方就会提示找不到包。
javac -classpath e:\javacode xxx.java
看行不行,行的话把classpath改成
.;e:\javacode;D:\JAVA\lib\tools.jar;D:\JAVA\lib;
这样重启控制台,再试试。如果不行,就好好好检查一下细节部分有没有什么疏漏了。
import ray.of.dawn.a;才行,自己写的类最好用类名,不要写成import ray.of.dawn.*;
而且这个a.class文件中第一句必须要是package ray.of.dawn;在编译调用包的文件时写法如下:比如文件名上b.javajavac -classpath c:\ b.java
这样编译就像编译成功一样,没有任何提示,不过在目录下没有发现.class文件!
把代码拷到classpath指定的目录下又可以运行呢?
>>把代码拷到classpath指定的目录下又可以运行呢?关键在于你要用到的包其他程序不一定需要,所以其他程序也有可能正常运行,而你的程序需要这个包却在classpath中间找不到。我的方法试过了么:
javac -classpath e:\javacode xxx.java
这样编译就像编译成功一样,没有任何提示,不过在目录下没有发现.class文件!
如果我的代码是放到e:\javacode中的话就可以正确编译运行。
我的代码烤到了其他地方就不行了。
1、在e:\javacode中能够编译运行,也就是说能够找到包,这时用到的classpath是".",当前目录;
2、在其他目录不能正确编译,也就是说这时的classpath出问题了,我们假定classpath会找到"e:\javacode"这一项,对吧?但实际上是怎么回事呢?按照你的classpath,(.;D:\JAVA\lib\tools.jar;D:\JAVA\lib;e:\javacode;)编译器依次会找"."(当前目录),"D:\JAVA\lib\tools.jar","D:\JAVA\lib","e:\javacode",在任何一个位置找到了包就不会再往下找了,所以很有可能发生的事是这样:你的某个classpath目录中的包和你希望用到的包冲突了。(所以我前面有一个建议就是把"e:\javacode"提前)我想我说的很详细了,你再仔细找找原因。或者说得再具体点。
地方都要再classpath中加上该路径?