如何在IntelliJ IDEA中的应用程序运行配置文件中将目录添加到类路径?

sal*_*sal 192 java classpath intellij-idea

我正在尝试将目录添加到应用程序运行配置文件的类路径中

如果我在VM设置中使用-cp x:target/classes覆盖,则会收到以下错误:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain
Run Code Online (Sandbox Code Playgroud)

有关如何将目录添加到项目的类路径的任何想法?

sti*_*vlo 252

在Intellij 13中,它看起来又略有不同.以下是Intellij 13的说明:

  1. 单击项目视图或通过单击窗口左边框上的"1:项目"按钮或按Alt + 1取消隐藏它
  2. 找到您的项目或子模块并单击它以突出显示它,然后按F4,或者右键单击并选择"打开模块设置"(在IntelliJ 14上它变为F12)
  3. 单击依赖项选项卡
  4. 单击右侧的"+"按钮,然后选择"Jars或目录......"
  5. 找到您的路径并单击"确定"
  6. 在"选择所选文件的类别"对话框中,选择Classes(即使它的属性),再按OK和OK
  7. 您现在可以运行您的应用程序,它将在类路径中具有所选路径

  • 很明显,您可以更改*run configuration*changing*module*classpath的类路径.但确切的问题是"如何在应用程序*运行配置文件*中将目录添加到类路径".所以真实的是由uaaquarius给出的 (8认同)
  • 因此,您将如何创建运行带有两个不同目录的配置,而这些目录必须在一个目录中唯一存在,而在另一个目录中则不能唯一。在eclipse中,您可以向启动配置添加/删除任何内容。IntelliJ不支持吗? (2认同)

sam*_*ass 90

似乎IntelliJ 11已经改变了方法,并且检查的答案不再适用于我.如果其他人通过搜索引擎到达这里,这是我在IntelliJ 11中解决它的方式:

  1. 转到项目结构,单击模块,然后单击您的模块
  2. 选择"依赖关系"选项卡
  3. 单击右侧的"+"按钮,然后选择"Jars或目录......"
  4. 添加所需的目录(注意您可以多选),然后单击"确定"
  5. 在出现的对话框中,选择"classes"而不是"jar目录"
  6. 确保您在运行目标中使用该模块

请注意,步骤5似乎是关键区别.如果选择"jar目录",它在IDE中看起来将完全相同,但不会在运行时包含路径.事实上似乎无法确定您之前是否选择了"类"或"jar目录".

  • 我没有得到第5步:(对话框没有出现. (6认同)
  • 非常感谢您发布此内容.你刚救了我一个小时左右. (4认同)

uaa*_*ius 34

您可以尝试-Xbootclasspath/a: java应用程序启动器的路径选项.根据描述,它指定了一个冒号分隔的directires,JAR压缩文件和ZIP存档的路径,以附加到默认的引导程序类路径.

  • 这是一个很好的答案,因为它不需要您更改项目配置.事实上,我认为它最能回答这个问题. (3认同)
  • 有关-Xbootclasspath如何工作的一些文档:http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570 (2认同)
  • 不幸的是,这对我不起作用,因为这导致引导类加载器加载从该类路径加载的所有类,这破坏了假设 Xyz.class.getClassLoader() 不为空的代码。 (2认同)

Mik*_*one 19

我在您的模块依赖项选项卡中使用Idea 8.(在项目结构对话框中).添加"模块库".在那里,您可以选择要添加的Jar目录.然后确保运行配置文件在运行时使用正确模块的Classpath和JDK(这是在运行配置对话框中).


小智 5

设置“ VM选项”,例如:“-cp $ Classpath $; your_classpath”

虚拟机选项

  • 它仍然适用于“-cp $Classpath$:your_classpath”,使用冒号而不是分号作为分隔符。我很惊讶它使用分号工作,因为这不是类路径中的有效分隔符。 (2认同)
  • 如果使用 Windows,则应使用分号“;” 而不是用于 unix 的 ':' https://docs.oracle.com/cd/E15289_01/JRCLLR/optionx.htm (2认同)