当我尝试运行应用程序时,IntelliJ刚刚开始告诉我
“命令行太长。请缩短my_app或应用程序默认配置的命令行。”my_app
是一个蓝色的链接,它指向一个“编辑配置”窗口,自动选择并突出显示类路径缩短器的下拉列表。我选择了建议的选项,但没有改变。
我不知道这意味着什么--我使用的是Scala,所以我使用的是一个简单的object MyObj extends App
,它根本不带参数。
我曾尝试按照其他类似问题的建议将<property name="dynamic.classpath" value="true" />
添加到workspace.xml中,但没有效果。
我以前在我的项目中运行我的程序很好。但是是什么延长了命令行?命令行上到底放了什么?
4条答案
按热度按时间y1aodyip1#
此答案基于IntelliJ 2020.1.4
1.打开配置。通常可以在“调试/运行”工具栏中找到。
1.你会在配置对话框中找到Shorten Command Line项。有不同的模式可以选择。在我的例子中,JAR Manifiest工作。
您也可以在下次自动产生测试时,将此设定为预设值。
tag5nh1u2#
找到了修复,这是特定于SBT的。我相信发生的事情是,
libaryDependencies
一个放在他们的build.sbt文件实际上添加了所有这些依赖项的jar到用于运行程序的类路径。要解决此问题,只需添加
lazy val scriptClasspath = Seq("*")
(lazy
可以是可选的)我把我的放在了
root
瓦尔上面,并带有库依赖项。不确定这是否必要,但是如果有问题,可以把它移到其他位置它的作用是,在运行程序时,SBT将把那些jar构建的“长”类路径压缩到自己的jar中,然后运行那个jar,这将启动所有的依赖项和程序。
请查看此内容,了解更长的演示以及其他答案
euoag5mw3#
实际上,我们需要设置Shorten命令行:类路径文件-
1aaf6o9v4#
您需要仔细检查是否引入了大量不相关的依赖项。