关于package classPath import

沁海棠 2017-04-23 06:57:13
.;f:\qq\;f:\pp\;这是环境变量的配置CLASSPATH
F:\pp\ww 目录下写了一段代码
package ww;
import java.util.Date;
public class World{
public static void main(String[] args){
System.out.println("World");
Date d = new Date();
System.out.println(d);
World w = new World();
System.out.println("fdsafdas");
}
}
打包会报错,java.lang.noClassDeFound,
个人理解ClassPath配置是就是源路径,类加载器在配置的目录下加载Class文件,那么我配置的f;\pp\那不是源路径么
那么我在建一个文件夹ww那不包么,ww下写的World,的package不是写 ww么;ClassPath不用配置java的lib就能加载?
用记事本写的,另一个目录f:\qq下建了一个hh文件夹
package hh;
import ww.World;
public class Hello{
public static void main(String[] args){
System.out.println("Hello");
World w = new World();
}
}
我想着既然,ClassPath是源路径,那么Hello是hh目录下的打包hh,类加载去加载World类,会去F:\pp\找看看有没有
自学刚开始用记事本写了个HelloWorld就用eclipse了,对于这些还不怎么理解,最近学完了基础想重新理解一边。求大神,回答。
...全文
202 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ceap2003 2017-04-24
  • 打赏
  • 举报
回复
引用 4 楼 qinhaotong 的回复:
里面的jar包。eclipse应该是有它自己的加载规则,用记事本,不配置还是能加载Date类。自己去找?好奇害死猫!
之前說了 java 加載類的工作,統一由 ClassLoader 實現,wiki 有簡單說明: https://zh.wikipedia.org/zh-cn/Java%E7%B1%BB%E5%8A%A0%E8%BD%BD%E5%99%A8 其中,引导类加载器 (bootstrap ClassLoader) 會加載 <JAVA_HOME>/jre/lib 中的 jar 包。rt.jar 是其中一個,java.util.Date 就在 rt.jar 中。所以不用配置也可使用。(jar 是一個zip file ,可用 7zip 等工其打開看看)
沁海棠 2017-04-23
  • 打赏
  • 举报
回复
引用 3 楼 ceap2003的回复:
[quote=引用 2 楼 qinhaotong 的回复:] 类加载去源路径搜索,但并没有写lib包的路径,把javahome也删了,但是依然可以直接导入,只有path配置了bin,.代表当前路径,记得好像可以不配置,默认加载当前路径,lib为啥也可不配置,感觉有点专牛角尖了
不太明白你想問的是什麼?Java 類加載沒有特定的規則。如何加載類完全視乎 CLassLoader 如何實現。eclipse, ant 和 Applet 有它自己實現的ClassLoader 和 java.exe 和 javac.exe 這些工具程式不同。所以無須依賴 CLASSPATH 的設置。 另,lib为啥也可不配置,是否指不能加類 lib 內的 jar 嗎?[/quote] 里面的jar包。eclipse应该是有它自己的加载规则,用记事本,不配置还是能加载Date类。自己去找?好奇害死猫!
ceap2003 2017-04-23
  • 打赏
  • 举报
回复
引用 2 楼 qinhaotong 的回复:
类加载去源路径搜索,但并没有写lib包的路径,把javahome也删了,但是依然可以直接导入,只有path配置了bin,.代表当前路径,记得好像可以不配置,默认加载当前路径,lib为啥也可不配置,感觉有点专牛角尖了
不太明白你想問的是什麼?Java 類加載沒有特定的規則。如何加載類完全視乎 CLassLoader 如何實現。eclipse, ant 和 Applet 有它自己實現的ClassLoader 和 java.exe 和 javac.exe 這些工具程式不同。所以無須依賴 CLASSPATH 的設置。 另,lib为啥也可不配置,是否指不能加類 lib 內的 jar 嗎?
沁海棠 2017-04-23
  • 打赏
  • 举报
回复
引用 1 楼 ceap2003的回复:
執行 World class 出現 Class not found 嗎? 你理解沒有錯。只是執行時,需要加上package (包)的名稱。如
 java ww.World 
如果,執行
 java World 
會出現 class not found 的
类加载去源路径搜索,但并没有写lib包的路径,把javahome也删了,但是依然可以直接导入,只有path配置了bin,.代表当前路径,记得好像可以不配置,默认加载当前路径,lib为啥也可不配置,感觉有点专牛角尖了
ceap2003 2017-04-23
  • 打赏
  • 举报
回复
執行 World class 出現 Class not found 嗎? 你理解沒有錯。只是執行時,需要加上package (包)的名稱。如
 java ww.World 
如果,執行
 java World 
會出現 class not found 的

62,635

社区成员

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

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