在我的应用程序中,我需要通过代理发送http请求。在终端中,我通过以下方式启动它:
java -Dhttp.proxyPort=**** -Dhttp.proxyHost=***.***.***.*** -jar app.jar
我应该使用什么环境变量来启动没有 -D 选项的应用程序,例如
java -jar app.jar
操作系统Linux。 Java 7。
谢谢!
PS 已经尝试过 JAVA_OPTS、JAVA_OPTIONS、_JAVA_OPTIONS、JAVA_TOOL_OPTIONS...
最佳答案
Java 有两种不同的方式将参数传递给程序:
- 属性,通常在命令行参数中指定(如第一个示例中所示),从文件加载或通过代码手动添加。
- 环境变量,由操作系统中的设置决定。
这两个概念是不同的;前者不影响后者,反之亦然。因此,您无法通过环境变量来设置属性。
其他选项包括在运行时加载 .properties
文件(假设您的代理此时尚未初始化)或放置完整命令(-D
参数和所有)在 shell 脚本中以便于启动。
关于java - 使用环境变量中的属性运行java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27294896/