我正在尝试在启动时将参数传递给我的jboss服务器,它是一个字符串,但是当我在这里部署war时它总是变为null我是这样做的:
./run.sh -Dfile.config=/home/stats/config.xml -c default -b 192.168.1.102
奇怪的是,在查看日志时,我没有将此属性传递给VM:
[ServerInfo] VM arguments: -Dprogram.name=run.sh -Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/apps/jboss/lib/endorsed
任何人都可以弄清楚我做错了什么吗?谢谢
修改
这是我在代码中引用此属性的方法:
Properties property = System.getProperties();
String fileName = (String)property.get("file.config");
这适用于Windows,从eclipse启动jboss:
这次我试图从linux盒子里运行这个服务器。
答案 0 :(得分:2)
你应该把它放到JAVA_OPTS
env变量:
$ export JAVA_OPTS="-Dfile.config=/home/stats/config.xml"
$ bin/run.sh
在启动JBoss之前或者如果这不是一次性选项,
将其放在bin/run.conf
表达式中的JAVA_OPTS
中
答案 1 :(得分:2)
我使用了环境变量。我在启动jboss之前设置它们,然后在jboss上运行的类中收集它们。