-Dproperty=value 
Set a system property value. If value is a string that contains spaces, you must enclose the string in double quotes: 
        java -Dfoo="some string" SomeClass比如说上面那样执行话,用这个代码得到后面的字符串
String foo=System.getProperty("foo");
你这个问题还有一个解决办法就是
java -classpath $CLASSPATH;xxx/xxx/xxx.properties -jar xxx.jar
这样指定属性文件的位置

解决方案 »

  1.   

    可否讲的详细点呢
    如何设置这样的系统变量呢/??
    比如我要设置一个
    java -jar -Ddealnum=3 xxxx.jar &
    这样的系统变量怎么设置啊
      

  2.   

    觉得还是通过代码来控制比较好。
    一般配置属性文件保存在跟class文件同级目录下或class包的根目录下,然后直接通过代码来定位属性文件。如:
    属性配置文件名--myproperties_zh_CN.properties
    保存中径classes目录下,也就是跟class文件包的根目录下ResourceBundle resources = null;
    try {
    resources = ResourceBundle.getBundle("myproperties", Locale.getDefault());
    System.out.println(resources.getString("test"));
    } catch (MissingResourceException mre) {
    mre.printStackTrace();
    }如果这些属性文件通过目录管理起来了,如:classes\config\myproperties_zh_CN.properties。则代码应该修改如下resources = ResourceBundle.getBundle("myproperties", Locale.getDefault());
    修改成
    resources = ResourceBundle.getBundle("config.myproperties", Locale.getDefault());
      

  3.   

    谢谢楼上提供的方法很例子很详细
    问提是我现在只要用java -jar -Ddealnum=3 xxxx.jar &
    这种方法来解决
    因为业务很多,dealnum=3表示deal数量的地几个
    使用ps aux 就好解决了
    所以想请问一下如何设置这样的环境变量~~~~~~~~
    谢谢大家拉
      

  4.   

    不是很明白楼主的意思。其它打包(jar)的时候,包中应该包含所有的资源信息(class、properties...)。环境变量跟属性文件有什么关联吗?
      

  5.   

    就象 jFresH_MaN(The answer is ......)(上帝对我说:编程要全面发展,)说的那样
    但他说的我不是很明白
    我们其他的业务程序使用java -jar -Ddealnum = x xxx.jar &
    的时候都可以启动
    但我却不可以
    不知道为什么。报告的错误是找不到db.properties的这个文件
    可我的连接这段的代码是从别的可以运行的程序上COPY过来的,可以讲绝对没有问题
    但就是找不到这个文件~~
    所以还请大家指点指点啊
    真的急~~~~~~~~~
    请大家帮帮忙啊~~~
      

  6.   

    那不知道可否解释一下
    java的名字参数
    -Dproperty=value 呢??
      

  7.   

    -d/D是设置jvm系统属性参数用。java命令中的-Dproperty=value参数也是配置jvm属性,但不可能代替应用系统的属性配置文件,其中得失不多说了。-Dproperty=value例子:1.
    java -Dmyname=gja106 myapp
    ...
    public static void main(String[] args) throws Exception{
    System.out.println(System.getProperty("myname"));//得到gja106
    }2.
    上述命令等同于
    System.setProperty("myname","gja106");相当于-Dmyname=gja106 myapp
    System.out.println(System.getProperty("myname"));//得到gja1061和2的结果是一栏的。