我对这两个术语感到困惑。
另外,我应该怎么做才能在Spring MVC项目的src文件夹下创建一个文件? 当我使用File对象创建时,它在C:\ SpringSourceTool中创建文件... 我猜这是ClassPath吧?
如何获取应用程序的applicationcontext
文件夹或根目录?
答案 0 :(得分:88)
构建路径用于构建应用程序。它包含编译应用程序所需的所有源文件和所有Java库。
类路径用于执行应用程序。这包括运行java应用程序所需的所有java类和库。 Classpath是必需的,默认路径为.
,如果java虚拟机无法找到用户定义的路径,则使用该路径。 (CLASSPATH
环境变量,jar清单中的-cp
标志或Class-Path:
属性)
答案 1 :(得分:47)
类路径是告诉(标准)Java编译器和Java运行库在哪里查找编译类的传统方法。它通常是一系列JAR文件名和目录名。编译器和运行时系统使用的类路径不必相同,但它们通常应该,特别是对于一个小项目。
Buildpath不是标准的Java术语。这是一个典型的IDE指定构成应用程序的“项目”之间关系的更丰富方式的术语。 IDE使用它来计算用于编译Java代码的类路径和源路径,以及用于运行它的类路径。 IDE还使用构建路径来确定如何将代码及其依赖项打包为(例如)WAR文件。
例如,项目的Eclipse构建路径包括它所依赖的其他项目,并列出项目包含/依赖的任何其他库JAR。它还列出了当前项目中下游项目可以依赖的包。
(如果您正在为项目使用Maven,则IDE构建路径机制是POM文件中声明的依赖项的辅助。例如,使用Eclipse和m2eclipse,构建路径是从POM文件合成的。)
答案 2 :(得分:26)
在运行时使用类路径来加载已编译的类和资源。
构建路径在编译时用于查找构建项目所需的依赖项。
答案 3 :(得分:4)
每个Java项目都有自己的构建路径,指定编译项目所需的所有依赖项。这些依赖项可能来自工作区中的其他Java项目,来自Java archive .jar文件,或来自包含.class文件的文件夹。
在CLASSPATH环境中,您只需指定.class文件(即jar,zip文件 - 在jar中,zip文件只能找到java类),即您正在帮助Java虚拟机(JVM)查找Java类文件< / p>
另外我该怎么做才能创建一个文件 在Spring MVC的src文件夹下 项目?当我使用文件创建时 对象它在里面创建文件 C:\ ... SpringSourceTool
这是启动JVM的地方,如果你想在其他地方创建文件,请使用相对路径。
答案 4 :(得分:4)
我想补充说明Andreas_D的答案,解释IDE /编译器需要构建路径来查找代码使用的外部包和类。我们有时将这些称为'依赖项'。
注意:这些外部软件包可能打包在压缩的.jar文件中,或者实际上,可能有几个jar文件打包在'library'中。一个库或一组库通常组成一个'框架'。
如果您的代码需要其他人编写的代码,您可以使用import
命令将导入到您的类中。但是,由于编译器或IDE需要知道这些类的位置,因此该命令本身是不够的。您可以在构建路径中指定此内容。
另一方面,classpath
告诉运行应用程序的JVM在实际执行代码期间在哪里找到依赖项。
另请注意: Classpath供JVM使用。
Buildpath供IDE /编译器使用,是一种从开发环境构建类路径的方法。通过IDE配置构建路径时,还要在项目中配置名为.classpath的隐藏文件。这用于在部署时为JVM提供类路径。
答案 5 :(得分:1)
类路径(from Wikipedia):
执行Java时,类似于经典的动态加载行为 程序,Java虚拟机懒惰地查找和加载类(它 仅在首次使用该类时才加载该类的字节码)。的 classpath告诉Java在文件系统中查找文件的位置 定义这些类。
虚拟机按以下顺序搜索和加载类:
bootstrap类:Java的基本类 平台(包含Java类库的公共类,以及 要使该库成为必需的私有类 功能)。
扩展类:扩展中的软件包 JRE或JDK的目录,
jre / lib / ext /用户定义的软件包和 库
默认情况下,仅JDK标准API和 可访问扩展程序包,而无需设置查找位置 他们。必须设置所有用户定义的包和库的路径 在命令行中(或与Jar文件关联的清单中) 包含类)。
简单地说-在程序运行时,JVM仅根据需要加载类。当需要一个类时,JVM将依靠类路径来知道从何处加载字节码(即:.class
文件)。
构建路径通常由IDE(例如Eclipse)使用,以了解在何处查找编译项目源代码所需的其他库。在运行时不使用构建路径。
答案 6 :(得分:0)
Environment variable
是一个全局系统变量,可由操作系统(OS)下运行的所有进程访问。
PATH
和CLASSPATH
是environment variables
PATH
:维护目录列表。操作系统在PATH
条目中搜索可执行程序,例如Java编译器(javac
)和Java运行时(java
)。
CLASSPATH
:维护目录(包含许多Java类文件.class
)和JAR文件(Java类.jar
的单文件存档)的列表。 Java编译器和Java运行时在CLASSPATH
条目中搜索程序中引用的Java类。
用户类别搜索路径(简称CLASSPATH
):按以下顺序确定:
current working directory (.)
。classpath
environment variable
中的条目,它将覆盖默认条目。-cp
(或-classpath
)命令行选项中的条目,该选项将覆盖classpath
环境变量。-jar
,它将覆盖以上所有内容。了解更多here