以下是有关在IntelliJ中设置CLASSPATH的一些问题:
大部分答案都涉及更改项目设置中的设置 - >模块 - >来源或 - >依赖关系页面。但是“CLASSPATH”这个词实际上并不在那些页面上。
例如, - >依赖页面允许显式设置一个位置来查找其他.class文件或.jar文件。但任何地方都没有“CLASSPATH”。
另外,在 - >中设置位置源页面似乎表明了目录树的内容 .class根应该是这样的,但实际位置实际上是在项目设置中设置的 - >项目 - >项目编译器输出字段,同样没有“CLASSPATH”一词。
JetBrains是否因为某些原因试图隐藏这个词(例如,它意味着是一个多语言的IDE)?是否有一些地方可以显式设置CLASSPATH而不是env变量?
答案 0 :(得分:2)
正如您所说,CLASSPATH是一个环境变量,因此会影响引用该变量的所有应用程序:
类搜索路径(更常见的是较短的名称,"类 在调用a时,可以使用-classpath选项设置path") JDK工具(首选方法)或通过设置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并没有试图隐藏"任何来自你的东西,它(希望)为许多常见的开发任务提供了更直观的界面。
答案 1 :(得分:0)
CLASSPATH
恰好是Java自动使用的环境变量的名称。
通常认为使用-cp
参数明确设置类路径而不是与CLASSPATH
冲突作斗争是一个更好的选择,因为它在整个流程范围内。
它没有试图隐藏"它一点都没有;没有理由使用它。