IntelliJ:命令行太长。缩短SBT项目中{的命令行

时间:2018-02-28 22:07:42

标签: scala intellij-idea sbt

当我尝试运行我的应用程序时,IntelliJ刚刚开始告诉我

  

"命令行太长。缩短my_app的命令行或者缩短应用程序默认配置的命令行。"

my_app是一个蓝色链接,导致"编辑配置"窗口,自动选择并突出显示类路径缩短器的下拉列表。我选择了建议的选项,但没有变化。

我不知道这意味着什么 - 我使用的是Scala,因此我使用了一个简单的object MyObj extends App,它根本不需要任何参数。

我已尝试按照其他类似问题的建议将<property name="dynamic.classpath" value="true" />添加到workspace.xml,但无济于事。

我曾经能够在我的项目中运行我的程序。但是什么延长了命令行?什么被放在命令行上?

3 个答案:

答案 0 :(得分:10)

此答案基于IntelliJ 2020.1.4

  1. 打开配置。通常可以在“调试/运行”工具栏中找到。
  2. 您将在“配置”对话框中找到“缩短命令行”项。您可以在那里选择不同的模式。就我而言,JAR Manifiedt工作了。

您还可以在下次自动生成测试时将其设置为默认值。

enter image description here

答案 1 :(得分:1)

找到修复程序,这是特定于SBT的。我相信正在发生的事情是libaryDependencies放入他们的build.sbt文件实际上将这些依赖项的所有jar都添加到用于运行程序的类路径中。

要解决此问题,只需添加

即可

lazy val scriptClasspath = Seq("*")lazy可以是可选的)

到你的build.sbt文件。我把它放在root val之上,带有库依赖项。不确定是否有必要,但如果遇到麻烦则转移它

这样做是在运行程序时SBT会将这些jar构建的“long”类路径压缩到自己的jar中,然后运行该jar,这将启动所有依赖项和程序。

检查this以查看更长时间的演示以及其他答案

答案 2 :(得分:0)

其实我们需要设置Shorten command line: classpath file -

java WrapperClass classpathFile className [args]