Java 无法将IntelliJ IDEA程序编译为可运行JAR

Java 无法将IntelliJ IDEA程序编译为可运行JAR,java,scala,intellij-idea,classnotfoundexception,executable-jar,Java,Scala,Intellij Idea,Classnotfoundexception,Executable Jar,我正在做一个学校项目,我正在编写一个Scala类作为Java项目的一部分,在MacOS上使用IntelliJ IDEA。以下是文件夹结构的外观: TopLevelFolderName .idea .settings bin classes artifacts TopLevelFolderName.jar src dir1 JavaClass.java Main.java dir2 ScalaClass.sca

我正在做一个学校项目,我正在编写一个Scala类作为Java项目的一部分,在MacOS上使用IntelliJ IDEA。以下是文件夹结构的外观:

TopLevelFolderName
  .idea
  .settings
  bin
  classes
    artifacts
    TopLevelFolderName.jar
  src
    dir1
      JavaClass.java
      Main.java
    dir2
      ScalaClass.scala
    META-INF
    .classpath
    .project
    TopLevelFolderName.iml
我可以使用
ScalaClass
中的Scala代码,构建并运行程序以运行
main
类中的
main
函数

但是,当我在
classes/artifacts
文件夹中设置项目结构以构建JAR时,当我转到菜单并单击
Run-TopLevelFolderName.JAR
时,JAR文件不起作用。我得到一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Tuple2
有人知道如何设置我的项目,以便包含Scala标准依赖项并使其可访问JAR文件吗?这是我第一次使用IntelliJ IDEA


谢谢,如果我能提供更多信息,请告诉我。

问题是您的JAR有依赖项,包括Scala运行时,需要在运行时使用
-classpath
参数将其传递给
java

如果在IntelliJ中单击“播放”以运行项目,那么您将看到IntelliJ在输出开始时使用的java命令(如果需要,单击“…”以展开它)。您会注意到,该命令包含一个
-classpath
参数,其中包含一个非常长的所需JAR列表。如果需要,您可以将此命令复制并粘贴到shell中以运行JAR

我认为您可能正在寻找的是如何创建一个包含所有依赖项的JAR,如下所述:


(您也可以通过从IntelliJ而不是从JAR运行项目来避免这个问题,这取决于您试图实现的目标。)

这是一个家庭作业吗?