如何在命令行中向Scala 3可执行程序传递系统属性
Scala 3命令行直接传递系统属性的解决方案
直接在原有-D系统属性参数前添加-J前缀,即可让Scala 3启动器将参数透传给底层JVM,无需通过环境变量中转:
- 所有需要传递给JVM的配置(包括系统属性、内存设置、GC参数等),只要加
-J前缀就能被Scala 3启动器正常识别,效果和Scala 2中直接传-D参数完全一致。
示例用法:
$ scala -J-Dpath.to.folder=/opt/myfolder Welcome to Scala 3.1.0 (11.0.9.1, Java OpenJDK 64-Bit Server VM). Type in expressions for evaluation. Or try :help. scala> println(System.getProperty("path.to.folder")) /opt/myfolder
该方案适用所有Scala 3命令行使用场景:
- 运行REPL时传递属性
- 运行已编译的主类:
scala -J-Dprop.name=value com.yourproject.Main - 运行jar包:
scala -J-Dprop.name=value -jar your-app.jar
内容的提问来源于stack exchange,提问作者Alessandro Caproni
相关产品推荐
相关产品推荐

