在Eclipse上进行测试时如何传递-D系统属性?


93

我在Windows上的Eclipse上进行开发,并且代码在Unix上进行了部署。我正在使用System.getProperty(“ key”)获取系统属性值...如何在Eclipse中传递它,这样我就不必修改代码,并且可以在Eclipse上进行调试?

有什么建议?

Answers:


133

运行->运行配置,选择项目,第二个选项卡:“参数”。顶部框用于您的程序,底部框用于VM参数,例如-Dkey=value


1
如果您尝试运行android应用程序,该在哪里?
user678392 2013年

为什么我必须使用'D'作为前缀?
Manticore 2014年

28
如果您像我一样厚--D参数放在VM参数的底部而不是程序参数的顶部。/叹气
鲁芬2014年

2
顶部的框用于String[] args传递给main方法。
jaco0646 2015年

7
有没有什么方法可以将其设置为默认发生,因此您不必在很多测试中重复手动输入此设置?
斯图尔特

44

您可以使用java System.properties,从eclipse中使用它们,您可以:

  1. 像这样添加-Dlabel="label_value"测试的VM参数Run Configuration

eclipse_vm_config

  1. 然后运行测试:

    import org.junit.Test;
    import static org.junit.Assert.assertEquals;
    
    public class Main {
        @Test
        public void test(){
            System.out.println(System.getProperty("label"));
            assertEquals("label_value", System.getProperty("label"));
        }
    }
    
  2. 最后,它应该通过测试并在控制台中输出:

    label_value

13

您可以将命令行参数添加到运行配置中。只需编辑运行配置,然后将-Dmyprop = value(或其他值)添加到VM Arguments Box。


4
如果在“参数”选项卡下说“命令行参数框”时表示“程序参数框”,则不起作用!如上文Bombe所述,必须在“ VM Arguments Box”中输入。
Devang Kamdar,2009年

4

运行配置->参数-> vm参数

(也可以放在“调试配置”->“参数”->“ VM参数”下的调试配置中)



0

是的,这是这样的:

右键单击程序,选择运行->运行配置,然后在vm参数上

-Denv=EnvironmentName -Dcucumber.options="--tags @ifThereisAnyTag"

然后,您可以申请并关闭。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.