我现在正在复习Java的核心基础知识。我遇到了一个关于类路径的话题。我搞不懂这类路径是什么?它们与路径有何不同?它们与环境变量有什么关系?
我使用IDE开发Java应用程序已有相当长的时间了。所有的事情似乎都是自动的和抽象的,有时一些开发人员看不到这些基本的东西,至少在我这里是这样的。我想学习这些基本知识,以加强我在Java编程语言中的基础。提前感谢!
发布于 2014-02-24 10:22:51
IDE的缺点之一是它可以通过自动化来“掩盖”语言的一些基础知识,然后当您需要在没有IDE的情况下进行分析时,您会遇到一些问题,因为它总是为您处理程序的各种元素。因此,尝试并掌握语言的基础知识,从而了解IDE为您提供的自动化功能,无疑是个好主意。
Classpath通常就像它听起来的那样,是一条通向应用程序使用的类文件的途径。它背后的主要功能是告诉JVM在哪里找到它需要的某些资源。例如,在像Eclipse这样的IDE中,您可以添加外部jars来引用第三方库,它将负责必要的路径设置。如果要通过命令行这样做,则需要包含一个classPath,以便以类似于以下方式告诉JVM所需的库在哪里:
javac -cp "path/to/lib.jar" MyProgram.java //-cp is set classpath option您不需要使用“核心api”库进行此操作的原因是计算机上设置了环境变量。您的操作系统将环境变量用作到各种基本位元和bob的存储路径。例如,在Path变量下的环境变量中,我拥有:
C:\Program Files\Java\jdk1.7.0_25\bin这将转到包含可执行文件(如java和javaw )的目录。我认为这是如何工作的(我在这一点上没有任何明确的来源)是,当您使用如下方式编译/运行一个java应用程序时:
java MyApplication or javac MyApplication.java计算机将在某个时候检查它的环境变量,寻找这些可执行文件,这就是为什么在环境var部分设置正确路径之前javac无法工作的原因。一旦找到它就会运行可执行文件。我希望它也能够找到主要的Java (rt.jar?)在这条路上也是。
我感觉到的主要区别是,Classpath是在运行/编译时提供的一个参数,用于为JVM添加额外的资源,环境变量是机器上用于各种事情的永久路径,包括告诉PC在哪里找到JVM和它是重要的文件。
Oracle确实有关于设置类路径的教程,如:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html
关于环境变量,这个answer链接到一篇关于查看环境变量的文章。
希望这能有所帮助
祝好运!
https://stackoverflow.com/questions/21983858
复制相似问题