什么是java.library.path默认设置为?

时间:2015-04-30 12:53:10

标签: java

我只是想知道Java究竟如何决定其java.library.path属性的默认值?

我正在运行* buntu 14.04 64位,默认为(前两个不存在):

  

的/ usr /爪哇/包/ LIB / AMD64
  的/ usr / lib64下
  / lib64的
  / lib目录
  / usr / lib

通过我的环境变量搜索,我发现 nothing 中包含了这些变量。设置LD_LIBRARY_PATH会将其内容添加到此列表中。

鉴于此信息,我假设此列表只是显式设置(硬编码)为Java,但我找不到任何文档。我的假设是否正确?不同操作系统的默认值是什么?这些值会在不同的分布中发生变化吗?

我要问两个原因。 1)我只是好奇。 2)我想知道在哪里放置一个库,以便Java总能找到它。

2 个答案:

答案 0 :(得分:1)

在我的Debian系统上,如果我使用命令

检查java.library.path的值
    with open("output/boatlist.json", "r") as jdata:
        data = json.load(jdata)
        data['boats'].sort(key=keyparam)

安装的系统软件包中的java返回正确的值:

    "boats": [
        {
            "Name": "Lagoon 46",
            "Price": "Call For Price",
            "Size": "46 ft / 2020",
            "Location": "Vancouver, British Columbia, Canada"
        },
        {
            "Name": "Lagoon 42",
            "Price": "790,000",
            "Size": "42 ft / 2021",
            "Location": "Vancouver, British Columbia, Canada"
        },
        {
            "Name": "Leopard 40",
            "Price": "560,000",
            "Size": "40 ft / 2016",
            "Location": "Victoria, British Columbia, Canada"
        }
   ]

我在openjdk网站上下载的open-jdk中的java返回:

java -XshowSettings:properties

我在对应的jdk / jvm的二进制libjvm.so中找到了每个返回的值

答案 1 :(得分:-1)

如果要查找机器中当前设置的路径,请运行以下命令。

System.out.println(System.getProperty("java.library.path"));

您可以在代码中明确设置路径,如下所示

System.setProperty(“java.library.path”, “/path/to/library”);

通过命令行

java -Djava.library.path=<path>

此外,我不会将其称为环境变量。它是jvm使用的系统属性。