使用环境变量中的属性运行java

时间:2014-12-04 13:09:29

标签: java ubuntu jvm environment-variables

在我的应用程序中,我需要通过代理发送http请求。在终端我开始吧:

java -Dhttp.proxyPort=**** -Dhttp.proxyHost=***.***.***.*** -jar app.jar 

我应该使用什么环境变量来启动我没有-D选项的应用,例如

java -jar app.jar

OS Linux。 Java 7。

THX!

PS已经尝试过JAVA_OPTS,JAVA_OPTIONS,_ JAVA_OPTIONS,JAVA_TOOL_OPTIONS ......

2 个答案:

答案 0 :(得分:2)

Java有两种不同的方法将参数传递给程序:

  • 属性,通常在命令行参数中指定(如第一个示例中所示),从文件加载或通过代码手动添加。
  • 环境变量,由操作系统中的设置决定。

这两个概念是分开的;前者不影响后者,反之亦然。因此,您无法通过环境变量设置属性。

其他选项包括在运行时加载.properties文件(假设您的代理尚未在该点初始化)或将完整命令(-D参数和所有内容)放入shell中脚本更容易启动。

答案 1 :(得分:0)

标准Java可执行文件没有任何用处。 Java可执行文件无法识别用于设置常规 JVM选项的任何环境变量。

您尝试过的所有内容都是第三方工具,脚本和启动器使用的约定。

据我所知,Java可执行文件关注的唯一特定于Java的环境变量是CLASSPATH,当您使用java运行-jar时,该变量将被忽略选项。


话虽如此, 1 并没有阻止你:

  • 创建一个名为java的包装器脚本,并将其放在标准java可执行文件之前的搜索路径上,或

  • 创建一个名为java的别名。

这样的包装器或别名可以从环境变量中获取JVM选项,您可以将其称为任何您想要的。


1 - ......除了良好意义:-)