Tag: 环境变量

Ant在哪里设置’java.home’(并且它是错的)并且它应该附加’/ jre’吗?

好的,我在CentOS 6.3上使用Ant版本1.7.1(默认安装): [theuser@dev-ingyhere ~]$ ant -version Apache Ant version 1.7.1 compiled on August 24 2010 [theuser@dev-ingyhere ~]$ cat /etc/*-release CentOS release 6.3 (Final) 我有JAVA_HOME设置,我运行ant : [theuser@dev-ingyhere ~]$ export JAVA_HOME=/usr/java/jdk1.7.0_17 ; echo $JAVA_HOME ; /usr/java/jdk1.7.0_17 [theuser@dev-ingyhere ~]$ ant -diagnostics | grep java\\.home java.home : /usr/java/jdk1.7.0_17/jre 这更有趣: [theuser@dev-ingyhere ~]$ export JAVA_HOME=/a/fools/folly ; echo $JAVA_HOME ; ant -diagnostics […]

Java系统环境变量

Java是否有一个默认的系统环境变量,在我们设置它时将始终读取/追加? CATALINA_OTPS / JAVA_OPTS等似乎仅适用于TOMCAT / JBOSS等。 我不想通过Java系统属性(通过-Dprop1 = value1 -Dprop2 = value2传入)来设置它,因为它涉及shell /批处理脚本。 它应该适用于操作系统,例如在Windows中双击jar文件。 它应该适用于不同的JRE(Sun,IBM,OpenJDK等)。 它不应该涉及额外的编码。 它应该在大多数库配置文件中工作,比如设置log4j level $ {LOG_LEVEL}。 更新 :添加了项目#4和5.从标题中删除操作系统以使我的问题更清晰。 更新2 :在查看Perception的答案后,似乎我的第2项和第3项可以通过System.getenv实现。 如何实现第4项和第5项? 以下是场景示例:想象一下,现在JAVA_DEFAULT_OPTS是一个环境变量,将由Java读取,因为它现在已成为标准。 在开发台式机上,我设置了JAVA_DEFAULT_OPTS=-DLOG_LEVEL=DEBUG -Xmx384m ; 在生产服务器计算机上,客户设置JAVA_DEFAULT_OPTS=-DLOG_LEVEL=INFO -Xmx1024m 。 当我/用户双击Windows上的jar文件时,应用程序将运行不同的log4j级别和最大内存堆大小。

当环境变量存在时,System.getenv()返回null

我正在尝试System.getenv()来获取我通过终端(Mac)设置的环境变量的值,我还在我的.bash_profile文件中设置变量并重新加载。 在这样做之后,我回显了值并且正确的值被打印到终端。 尝试检索变量的值时(我确保在我的.bash_profile文件和使用System.getenv()时使用了正确的名称。 在下面的代码中,我用VAR_NAME替换了变量的名称: String varValue = System.getenv(“VAR_NAME”); System.out.println(“Value: ” + varValue); 在我的.bash_profile中: export VAR_NAME=”foo” 当我打印出varValue的值时,会打印“null”。 可能是什么原因造成的? 编辑:我在这里按照最新的答案,重新启动Eclipse,它工作正常!

在Java中访问shell环境变量

有谁知道如何在Java中访问标准shell环境的环境变量? 我正在使用ProcessBuilder类,我必须指定我正在运行的shell脚本中使用的特定环境变量,这些变量存在于标准shell环境中。 访问ProcessBuilder环境不起作用。

为ProcessBuilder设置环境

我从Java(1.6)设置Linux环境有一个奇怪的问题; 特别是“PATH”变量。 简而言之,我有一个用于运行本机进程的管道,它使用java.lang.ProcessBuilder 。 用户可以选择通过HashMap命名environment设置环境变量: ProcessBuilder pb = new ProcessBuilder(args); Map env = pb.environment(); if (environment != null) env.putAll(environment); Process process = pb.start(); 如果我将它转储到控制台,并且PATH变量的值正确,则env变量设置正确。 但是,运行该进程会导致抛出Exception : java.io.IOException: error=2, No such file or directory 在终端shell中使用相同的环境变量运行相同的进程。 为了测试这个,我在终端后设置环境后运行Eclipse。 在这种情况下, ProcessBuilder进程正确运行。 所以必须发生的是ProcessBuilder没有使用我为它设置的环境,而是使用当前的System环境。 我在网上找不到任何满意的答案。 也许这是一个特定于操作系统的问题? 或者其他我错过的东西?

如何使用exec在Java中设置环境变量?

可能重复: 如何从Java设置环境变量? 我正在尝试设置一个环境变量,并将其读回以validation它是否已实际设置。 我有以下内容: import java.io.IOException; public class EnvironmentVariable { public static void main(String[] args) throws IOException { Runtime.getRuntime().exec(“cmd.exe set FOO=false”); String s = System.getenv(“FOO”); System.out.println(s); } } 但是,似乎FOO始终为空,这意味着它可能未正确设置。 我的exec命令是否正确? javadocs声明它可以将一个字符串参数作为命令。 有任何想法吗?

如何在log4j.properties中使用系统环境变量?

我添加了系统环境值PROJECT_HOME = C:\ Program Files \ Project 现在我正在尝试使用log4j.properties中的系统环境值,但没有设置它 **log4j.properties** **log4j.appender.LOGFILE.File=”${env.PROJECT_HOME}”/project.log** 你能告诉我如何在log4j.properties中设置系统环境变量吗? 使用log4j-1.2.7版本

如何在OSX Mountain Lion上为环境变量设置应用程序?

自从升级到OSX Mountain Lion后,我在为eclipse和maven设置环境变量方面遇到了一些问题。 我的目标是在Eclipse中运行maven命令。 此命令需要从远程存储库下载伪像(解析依赖项)。 存储库通过HTTPS进行身份validation。 我通过经过身份validation的HTTPS跟踪了远程存储库访问指南 ,并将下面的行添加到我的.bash_profil中。 如果我在终端中运行maven,那么每件事都可以。 export MAVEN_OPTS=”-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd” 但这只适用于终端而不适用于应用程序。 在以前的OSX版本中,您必须添加MAVEN_OPTS变量 ~/.MacOSX/environment.plist (另请参阅在Mac OS X Lion上设置环境变量 )这对OSX Lion完美有效。 但是Apple已经改变了Mountain Lion的这种行为。 我已经阅读了environment.plist不再受支持,新的方法是编辑.app本身的Info.plist( Mountain Lion中设置的系统环境变量在哪里? )。 看来你必须添加一个包含所有变量的LSEnvironment字典。 LSEnvironment M2_HOME /usr/share/maven MAVEN_OPTS -Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd CFBundleExecutable eclipse CFBundleGetInfoString Eclipse 3.8 for Mac OS X, Copyright IBM Corp. and others 2002, 2011. All rights reserved. […]

TOMCAT_OPTS,环境变量和System.getEnv()

我使用tomcat,我想在我的java代码中获取一个环境变量。 要设置环境变量,我使用此bash命令: export TOMCAT_OPTS=-Dmy.var=foo 之后我开始tomcat ./startup.sh (in bin folder of tomcat) 在我的java代码中,我尝试获取此变量: System.getEnv(“my.var”) 但它返回NULL。 我怎样才能做到这一点 ? 我确切地说,如果我使用maven启动tomcat并使用eclipse环境选项卡,则找到该变量! 但我需要在生产模式下像上面一样启动tomcat。 编辑:当直接使用导出MY_VAR时,它在本地运行但不在我的服务器上运行…

在Windows 10中设置环境变量以使用java和javac

我有一台带有windows 10的新笔记本电脑,我想设置它,所以我可以从命令行使用java和javac 。 我在网上搜索过,但是所有的指南都是针对以前的版本,而且我不想搞乱一些我不理解的东西。