Java 无法将IntelliJ IDEA程序编译为可运行JAR
我正在做一个学校项目,我正在编写一个Scala类作为Java项目的一部分,在MacOS上使用IntelliJ IDEA。以下是文件夹结构的外观: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
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运行项目来避免这个问题,这取决于您试图实现的目标。)这是一个家庭作业吗?