java中的类路径问题,导入的标准类不需要配置它的路径吗
import java.util.*; public class HelloWorld { public static void main ( String [] args ) { System.out.println ( "HelloWorld!" ); } }
假如这个程序我存在Djava目录下,并且在CLASSPATH变量里面把d:java;加进去了,编译的时候会在同目录生成一个.class文件,这是对程序中 HelloWorld 类编译的结果吧?可是程序中还导入了util包下的System类阿,那个类的位置我没有在CLASSPATH 里面设置阿,怎么也能运行呢?java程序中导入的标准类不需要配置CLASSPATH吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
引用来自“dd”的答案
在rt.jar 里
引用来自“szf”的答案
jar文件相当于一个zip文件,里面是很多.class文件的组合,而这些.class文件是按目录层次存放的,这个目录层次就是import 后面的.和.之间的包名了
比如我自己了一个类库,其中的工具类是MyTool,它在 org.my.utils包中,而我把它打包在mytool.jar文件中。那么你要使用的话,就要在CLASSPATH中包含mytool.jar, 并且在使用此类的类中,import org.my.utils.MyTool;
jdk/jre/lib下的所有jar包会自动放在CLASSPATH中,而不是自动被import,上面的兄弟表达可能有点偏差,但大致是这样。其实意思就是,在jdk/jre/lib下的所有jar文件中包含的package,是可以在程序直接import而不用对CLASSPATH作特殊处理
jar文件相当于一个zip文件,里面是很多.class文件的组合,而这些.class文件是按目录层次存放的,这个目录层次就是import 后面的.和.之间的包名了
比如我自己了一个类库,其中的工具类是MyTool,它在 org.my.utils包中,而我把它打包在mytool.jar文件中。那么你要使用的话,就要在CLASSPATH中包含mytool.jar, 并且在使用此类的类中,import org.my.utils.MyTool;
引用来自“流云诸葛”的答案
引用来自“红薯”的答案
jdk/jre/lib 下的所有 jar 包会自动被 import
在rt.jar 里
jdk/jre/lib 下的所有 jar 包会自动被 import
对于标准类库的引用,像上面的"java.io.*",可以直接使用,也就是说它 不需要显示的放在系统的环境变量CLASSPATH中。
http://blog.csdn.net/zgzhjj001/article/details/2253261
此问题已解决~