繁体   English   中英

是否在IntelliJ IDEA中抽象了CLASSPATH?

[英]Is the CLASSPATH abstracted away in IntelliJ IDEA?

以下是有关在IntelliJ中设置CLASSPATH的一些问题:

大多数答案都涉及更改项目设置->模块->源或->依赖项页面中的设置。 但是,“ CLASSPATH”一词实际上不在这些页面上。

例如,->依赖项页面使您可以显式设置一个位置,以查找其他.class文件或.jar文件。 但是任何地方都没有“ CLASSPATH”。

同样,在-> Sources页面中设置位置似乎表明.class根目录树应该是什么样的,但是实际位置实际上是在Project Settings-> Project-> Project Compiler Output字段中设置的,再次没有单词“ CLASSPATH”。

JetBrains是否出于某种原因(例如,本意为多语言IDE)试图隐藏该单词? 除了env变量之外,是否还有其他地方可以显式设置CLASSPATH?

就像您说的那样,CLASSPATH是一个环境变量,因此它将影响所有引用该变量的应用程序:

可以在调用JDK工具(首选方法)时使用-classpath选项或通过设置CLASSPATH环境变量来设置类搜索路径(通称“类路径”)。 首选-classpath选项,因为您可以为每个应用程序分别设置它,而不会影响其他应用程序,也无需其他应用程序修改其值。

来源: http : //docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

您还可以在运行应用程序时使用-classpath选项,这不会影响系统上运行的其他Java应用程序。

IntelliJ将构造您的类路径以包括您的应用程序和所有依赖项(无论是文件夹还是Jars等),并在您运行应用程序时将其传递给JVM。 IntelliJ GUI确实引用了您的显式“依赖项”,并允许您对其进行编辑。 您的应用程序构建路径将需要包含那些依赖关系和所有应用程序代码,因此将其隐式包括在内是有意义的。

如果您要使用很多库,则类路径可能会变得很长-必须手动维护类搜索路径中的位置列表,这将很耗时且容易(人为)出错-文件夹名称上有错字,这样会赢不要编译/运行-因此它可以为您承担任务。

您可能会发现您的IDE代表您将许多其他参数传递给JVM(堆大小,GC,JMX扩展等)-但这就是IDE的一部分。 当然,我们可以从命令行调用诸如版本控制之类的东西,但是为什么要放弃帮助呢? 您的IDE并没有试图“隐藏”您的任何东西,而是(希望)为许多常见的开发任务提供了更直观的界面。

CLASSPATH恰好是Java自动使用的环境变量的名称。

通常,使用-cp参数来显式设置类路径是一个更好的选择,而不是与CLASSPATH冲突作斗争,因为它是进程范围的。

它根本不试图“隐藏”它; 完全没有理由使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM