intellij-idea IntelliJ:命令行太长,请缩短SBT项目中...的命令行

8aqjt8rx  于 2022-11-01  发布在  其他
关注(0)|答案(4)|浏览(230)

当我尝试运行应用程序时,IntelliJ刚刚开始告诉我
“命令行太长。请缩短my_app或应用程序默认配置的命令行。”
my_app是一个蓝色的链接,它指向一个“编辑配置”窗口,自动选择并突出显示类路径缩短器的下拉列表。我选择了建议的选项,但没有改变。
我不知道这意味着什么--我使用的是Scala,所以我使用的是一个简单的object MyObj extends App,它根本不带参数。
我曾尝试按照其他类似问题的建议将<property name="dynamic.classpath" value="true" />添加到workspace.xml中,但没有效果。
我以前在我的项目中运行我的程序很好。但是是什么延长了命令行?命令行上到底放了什么?

y1aodyip

y1aodyip1#

此答案基于IntelliJ 2020.1.4
1.打开配置。通常可以在“调试/运行”工具栏中找到。
1.你会在配置对话框中找到Shorten Command Line项。有不同的模式可以选择。在我的例子中,JAR Manifiest工作。
您也可以在下次自动产生测试时,将此设定为预设值。

tag5nh1u

tag5nh1u2#

找到了修复,这是特定于SBT的。我相信发生的事情是,libaryDependencies一个放在他们的build.sbt文件实际上添加了所有这些依赖项的jar到用于运行程序的类路径。
要解决此问题,只需添加
lazy val scriptClasspath = Seq("*")lazy可以是可选的)
我把我的放在了root瓦尔上面,并带有库依赖项。不确定这是否必要,但是如果有问题,可以把它移到其他位置
它的作用是,在运行程序时,SBT将把那些jar构建的“长”类路径压缩到自己的jar中,然后运行那个jar,这将启动所有的依赖项和程序。
请查看此内容,了解更长的演示以及其他答案

euoag5mw

euoag5mw3#

实际上,我们需要设置Shorten命令行:类路径文件-

java WrapperClass classpathFile className [args]

1aaf6o9v

1aaf6o9v4#

您需要仔细检查是否引入了大量不相关的依赖项

相关问题