关于包的一个问题!

interhanchi 2005-06-17 10:27:23
package test;
class Test{
protected void f(){
System.out.println("f()");
}
public void f1(){
System.out.println("f1()");
}
}
public class Test2 extends Test{
public static void main(String[] args){
new Test().f();
}
}
为什么我只有执行java test.Test2才能运行 !
我的classpath是 当前目录.
而且我的Test2.java是和test在一个文件夹.
我把test.class和Test2.class已经放进test文件夹了!
它的错误是Exception in thread "main" java.lang.NoClassDefFoundError: Test2.
...全文
139 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
interhanchi 2005-06-17
  • 打赏
  • 举报
回复
还是不太懂! 谁能解释的清楚一点!
难道一定要 java java package.classname吗?
Dan1980 2005-06-17
  • 打赏
  • 举报
回复
要搞清楚包是怎么回事, 建议你彻底忘掉"当前文件夹"这个概念! 一切类和包都应放在classpath下面.

很多JAVA入门教材都用"当前文件夹"来代替classpath和包, 其实很容易把初学者糊涂.
jihanzhong 2005-06-17
  • 打赏
  • 举报
回复
hehe ^^
huangdeji 2005-06-17
  • 打赏
  • 举报
回复
他找到class没问题,编译的时候找不到test包
topil 2005-06-17
  • 打赏
  • 举报
回复
java package.classname
interhanchi 2005-06-17
  • 打赏
  • 举报
回复
但是虚拟机不是会自动从你的classpath的根目录开始查找class文件吗?
这样说得话,它不是会自己找到.
huangdeji 2005-06-17
  • 打赏
  • 举报
回复
这是规定,我也不知道为什么,好多东西是不需要知道为什么的
rower203 2005-06-17
  • 打赏
  • 举报
回复
因为你的类是放在test package中,所以java test.Test2才能运行。
java Test2 要报Exception in thread "main" java.lang.NoClassDefFoundError: Test2.
错。
今天做项目,用到了el表达式和jstl,在tomcat6.0上跑得好好的,没想到copy到tomcat5.5后,服务器起不来了,是tomcat版本的问题。查阅了不少资料,现在总结如下: 错误信息: java.lang.NoClassDefFoundError: javax/el/ExpressionFactory 分析:少,上网查阅后发现解决方法 解决方法:将javaee.jar再copy一份放在tomcat目录的common\lib下 如上完成后即解决了该异常,大以为大功告成,没想到又出现了新异常 错误信息:java.lang.NoSuchMethodError: javax.servlet.JSP.PageContext.getELContext()LJAVAx/el/ELContext 分析:这个问题网上找了半天没看到解决方法,只好自己想办法。想起先前看到的一个知识点:tomcat 6 实现了 servlet 2.5 和JSP2.1的规范相应的 tomcat 5 实现的是 2.4和2.0,想到tomcat5不支持JSTL1.2,于是替换JSTL1.1的试试看后,问题解决 解决方法:移出工程lib目录中的JSTL1.2.jar,添加standard-1.1.jar和JSTL1.1.jar 总结: jstl1.1版本由2个必要构成:standard-1.1.jar和JSTL1.1.jar;而jstl1.1版本只有一个必要JSTL1.2.jar。(一开始在替换的过程中想当然的用JSTL1.1.jar换JSTL1.2.jar,然后遗漏了standard-1.1.jar,耽搁了不少时间。) 经测试,tomcat6.0支持JSTL1.2版本,也支持JSTL1.1版本;tomcat5.5只支持JSTL1.1(JSTL1.1一下版本未测试) 不建议将2个版本的3个同时放在工程中,可能会发生版本冲突。(另外,实际操作的时候发现JSTL1.2.jar和JSTL1.1.jar这2个放一起可以在tomcat5.5和tomcat6.0上跑,鉴于JSTL1.1.jar里面没有c.tld等文件,猜测JSTL1.1.jar里面只是放置了1.1的专用的类和信息)

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧