【问题标题】:Debugging Project in IntelliJ error: "could not find or load main class"IntelliJ 中的调试项目错误:“找不到或加载主类”
【发布时间】:2014-05-09 02:30:11
【问题描述】:

我可以很好地构建我的项目,但我的调试配置不起作用。我创建了一个带有主类“edu.mit.csail.sdg.alloy4whole.SimpleGUI”的调试配置,并使用正确的ant文件创建了ant目标“all”。每当构建完成时,我都会收到“错误:无法找到或加载主类 edu.mit.csail.sdg.alloy4whole.SimpleGUI”

构建.xml

<project default="all">
  <target name="clean">
    <delete>
      <fileset dir="edu" includes="**/*.class"/>
    </delete>
    <delete dir="dist"/>
  </target>

  <target name="build">
    <javac srcdir="edu" debug="true" includeAntRuntime="false"/>
  </target>

  <target name="dist" depends="build">
    <mkdir dir="dist"/>
    <jar destfile="dist/alloy4.2.jar" basedir="." excludes="dist/**" manifest="META-INF/MANIFEST.MF"/>
    <jar destfile="dist/alloy4.2tests.jar" basedir="." excludes="dist/**" manifest="META-INF/MANIFESTTESTS.MF"/>
  </target>

  <target name="all" depends="dist"/>
</project>

META-INF/MANIFEST.MF:

Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: edu.mit.csail.sdg.alloy4whole.SimpleGUI

有什么想法吗? 谢谢!

【问题讨论】:

  • 请附上您的运行/调试配置的屏幕截图。很难猜出你是如何设置的。

标签: java ant intellij-idea


【解决方案1】:

一般来说,ant 中的 srcdir 指向类似 'src' 的东西,它是源文件夹的根目录,然后包含 java 包。您的 srcdir 指向可能是您的包结构的一部分的 edu。查看编译后的类是否包含 'edu' 作为全名的一部分 - 而不是以 mit.csail 开头...

另外,使用类文件的完整包名检查 jar 是否正确创建。

【讨论】:

  • 这是我的包结构:i.imgur.com/GyNez84.png。所以主类的路径应该没问题。我不使用 src 目录
  • 我使用 Eclipse,所以不完全确定 IDEA 如何处理类路径设置,但听起来像是为调试会话设置的任何类路径,都没有包含编译输出。
  • 我认为@mikemil 是对的。 Ant 会编译目录 edu 的内容,所以它会从 mit 包开始。我想知道它是否完全编译。请附上 ant 构建输出。
猜你喜欢
  • 2023-01-27
  • 2021-12-07
  • 2018-11-24
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 2016-05-21
  • 2019-04-20
相关资源
最近更新 更多