Java 设置、类路径和环境变量

标签 java environment-variables

我不确定这是否是最佳实践,但我将 MySQL-connector jar 添加到 Java 安装目录的扩展目录中,以便可以轻松连接到 MySQL 数据库。

我还设置了环境变量指向各个目录,这样我就可以在不同的机器上进行开发,并且只在本地定义环境变量,而不必修改代码的文件路径。

在上述任何一种情况下,我发现除非重新启动计算机,否则 java 也无法识别。重新启动到 Java 期间会发生什么? java进程是否更新了一些配置文件?您可以在不重新启动的情况下更新此内容吗?

为了测试这一点,我在 Mac(添加到 .MacOS/environment.plist)、Linux (Ubuntu 12.04) 和 Windows 7(通过控制面板)上创建了一个新的环境变量。然后我使用 System.getenv("TestVar"); 返回 null。从命令行运行 set 显示它存在。重新启动后 System.getenv("TestVar"); 返回预期值。

最佳答案

最终您的目标是将 jar 文件包含在 CLASSPATH 中。这取决于您如何在类路径中包含 jars ,但这不是将 jar 放入 extensions 目录中的好习惯。运行程序时修改 CLASSPATH 值。

 java -cp jar1:jar2:jar3:dir1:. HelloWorld
 java -classpathjar1:jar2:jar3:dir1:. HelloWorld

关于Java 设置、类路径和环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11900893/

相关文章:

bash - Bitbucket 管道 : echo environment variable

python - 有没有办法为 Jupyter Notebook session 设置 PYTHONHASHSEED?

java - 用于提取键值对的正则表达式

java - 使用 lambda 获取 Map<K,V> 的最大键

java - 在 ActionEvent 期间更改标签

java - 基于分隔符和字符串的拆分

linux - 如何在curl PUT 请求正文中使用环境变量?

java - 如何对 KeyInfo 属性 XAdES4j 进行签名?

java - 无法从另一个目录运行 ant

bash - 为什么不在导出命令的赋值部分扩展通配符?