【问题标题】:Can't choose class as main class in IntelliJ无法在 IntelliJ 中选择类作为主类
【发布时间】:2014-03-20 00:05:15
【问题描述】:

我在 IntelliJ 中有一个 Java 项目,我刚刚在嵌套文件夹层次结构中添加了一堆文件。其中许多文件是测试并包含 main 方法,因此我应该能够运行它们。但是我不知道该怎么做。

我是 IntelliJ 的新手,以前的文件已显示在项目层次结构中,symbol 对应于“包含 main() 方法声明的 Java 类”。但在这种情况下,它们会显示与“位于源根目录之外的 Java 类”相对应的符号。

那么我该如何编译和运行这些文件呢?

【问题讨论】:

  • 对于遇到相同问题但没有“源根”问题的任何人 - 当我不小心导入 com.sun.org.apache.xpath.internal.operations.String 时,可运行性和“主类”指示器消失了 - 仍然无法弄清楚 为什么它发生了! (IDEA 2018.1,JDK 8,Maven)

标签: java intellij-idea


【解决方案1】:

选择包含这些类的包树的文件夹,右键选择“Mark Directory as -> Source Root”

【讨论】:

  • 这符合我的要求,但是现在它无法解析导入语句。其他错误也出现了。想法?
  • 例如,它要求我在方法前添加“odeToJava.modules”。然后抱怨无法解析 odeToJava。
  • 您如何进入允许您执行此操作的菜单?您在项目视图 (alt + 1) 中查看项目目录和文件,然后按照 OP 的说明右键单击文件夹。
  • 我已经这样做了,但它只允许我选择成绩文件,而不是主要的 JAVA 运行器。
  • 这是在java类的main方法在main方法旁边的gutter中没有运行图标后导入gradle项目后需要的。
【解决方案2】:

您链接的文档实际上在与“位于源根目录之外的 Java 类”相关联的链接中有答案。 配置您的源和测试根,它应该可以工作。

https://www.jetbrains.com/idea/webhelp/configuring-content-roots.html

既然您说这些是测试,您可能应该将它们标记为测试源根而不是源根。

【讨论】:

  • 确保正确设置模块依赖项。在项目结构中标记模块,“F4”是打开模块设置的默认键(至少在 Linux 中)。 (或右键单击并选择“打开模块设置”)。希望这里可以提供更多帮助:jetbrains.com/idea/webhelp/…
  • 啊,是的,依赖最终解决了我的问题。泰。
【解决方案3】:

以下是 IDEA IntelliJ 2019.3 的完整程序:

  1. 文件 > 项目结构

  2. 在项目设置 > 模块下

  3. 在“源”选项卡下,右键单击“src”文件夹并选择“源”。

  4. 应用更改。

【讨论】:

    【解决方案4】:

    有时在当前自动配置的sources root下需要指定module classpath:

    1. 点击运行 -> 编辑配置
    2. 选择你找不到主类的项目
    3. Use classpath of module 下拉菜单下,查看是否有一个子目录,其中包含您的主类。如果是,请选择它。
    4. 再次尝试配置主类。

    【讨论】:

      【解决方案5】:

      我还面临另一个问题:ma​​in 方法必须有参数

      这种方式不对,Intellij不会让你选择main方法。

      public class yourClass() {
      
        public static void main() {
      

      这种方式是正确的,Intellij 会让你选择它

      public class yourClass() {
      
        public static void main(string[] args) {
      

      【讨论】:

      • 这不适用于Java class located out of the source root
      • 可能不是主题所有者的情况,但错误信息类似。赞成,因为这对我有帮助。其他人可能也需要这个
      猜你喜欢
      • 2020-10-18
      • 2019-06-20
      • 1970-01-01
      • 2015-02-20
      • 2017-11-06
      • 1970-01-01
      • 2019-04-20
      • 2017-10-25
      • 1970-01-01
      相关资源
      最近更新 更多