Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类路径和构建路径之间有什么区别_Java_Classpath_Buildpath - Fatal编程技术网

Java 类路径和构建路径之间有什么区别

Java 类路径和构建路径之间有什么区别,java,classpath,buildpath,Java,Classpath,Buildpath,我对这两个术语感到困惑 另外,我应该如何在SpringMVC项目的src文件夹下创建一个文件? 当我使用文件对象创建时,它会在C:\SpringSourceTool内创建文件。。。 我想这是ClassPath,对吗 如何获取应用程序的applicationcontext文件夹或根目录?每个Java项目都有自己的构建路径,指定编译项目所需的所有依赖项。这些依赖项可能来自工作区中的其他Java项目、Java archive.jar文件或包含.class文件的文件夹 在类路径环境中,您只需要指定.cl

我对这两个术语感到困惑

另外,我应该如何在SpringMVC项目的src文件夹下创建一个文件? 当我使用文件对象创建时,它会在C:\SpringSourceTool内创建文件。。。 我想这是ClassPath,对吗


如何获取应用程序的
applicationcontext
文件夹或根目录?

每个Java项目都有自己的构建路径,指定编译项目所需的所有依赖项。这些依赖项可能来自工作区中的其他Java项目、Java archive.jar文件或包含.class文件的文件夹

在类路径环境中,您只需要指定.class文件(即jar、zip文件–在jar、zip文件中,您只能找到java类),即您正在帮助java虚拟机(JVM)查找java类文件

另外,我应该如何创建一个文件 在Spring MVC的src文件夹下 项目当我使用文件创建 对象,它在其中创建文件 C:\SpringSourceTool

这是JVM启动的地方,如果您想在其他地方创建文件,请从这里使用相对路径


有关更多信息,请参阅和。

类路径在运行时用于加载已编译的类和资源


编译时使用生成路径查找生成项目所需的依赖项。

生成路径用于生成应用程序。它包含编译应用程序所需的所有源文件和所有Java库


类路径用于执行应用程序。这包括运行java应用程序所需的所有java类和库。类路径是必需的,默认路径是
,如果java虚拟机找不到用户定义的路径,则使用该路径。(
CLASSPATH
环境变量、
-cp
标志或jar清单中的
类路径:
属性)

类路径是告诉(标准)Java编译器和Java运行时在何处查找已编译类的常规方法。它通常是JAR文件名和目录名的序列。编译器和运行时系统使用的类路径不必相同,但它们通常应该相同,特别是对于小型项目

Buildpath不是标准的Java术语。这是一个更丰富的术语,典型的IDE指定了组成应用程序的“项目”之间的关系。IDE使用它来计算用于编译Java代码的类路径和源路径,以及用于运行Java代码的类路径。IDE还使用构建路径来确定如何将代码及其依赖项打包为(例如)WAR文件

例如,项目的Eclipse构建路径包括它所依赖的其他项目,并列出项目包含/依赖的任何其他库JAR。它还列出了当前项目中下游项目可以依赖的包


(如果您在项目中使用Maven,IDE构建路径机制是POM文件中声明的依赖项的次要机制。例如,将Eclipse与m2eclipse一起使用,构建路径是从POM文件合成的。)

我想在Andreas_D的回答中补充说明,IDE/编译器需要构建路径来定位代码使用的外部包和类。我们有时将这些称为“依赖性”

注意:这些外部包可能打包在一个压缩的.jar文件中,或者实际上,可能有几个jar文件打包在一个“库”中。一个或一组库通常构成一个“框架”

如果您的代码需要其他人编写的代码,您可以使用
import
命令将它们导入类中。但是,这个命令本身是不够的,因为编译器或IDE需要知道这些类的位置。您可以在生成路径中指定此项

另一方面,
classpath
告诉运行应用程序的JVM在实际执行代码期间在何处查找依赖项

另请注意: 类路径供JVM使用


Buildpath供IDE/编译器使用,是从开发环境构造类路径的一种方法。当您通过IDE配置构建路径时,您也在项目中配置一个名为.classpath的隐藏文件。这用于在部署时向JVM提供类路径。

类路径():

与执行Java时的经典动态加载行为类似 程序,Java虚拟机查找和加载类(它 仅当类首次使用时加载该类的字节码)。这个 类路径告诉Java在文件系统中查找文件的位置 定义这些类

虚拟机按以下顺序搜索和加载类:

引导类:Java的基础类 平台(包括Java类库的公共类,以及 创建此库所需的私有类 功能性)

扩展类:扩展中的包 JRE或JDK的目录

jre/lib/ext/user-defined包和 图书馆

默认情况下,只有JDK标准API和 无需设置查找位置即可访问扩展包 他们。必须设置所有用户定义包和库的路径 在命令行中(或在与Jar文件关联的清单中 包含类)

简单地说,当程序运行时,JVM只根据需要加载类。当需要一个类时,JVM将依赖于类路径,它知道从哪里加载字节码(即:
.class
文件)

另一方面,构建路径通常由IDE使用,