Java 什么是;本地图书馆位置“;你在Eclipse中做什么?

Java 什么是;本地图书馆位置“;你在Eclipse中做什么?,java,eclipse,java-native-interface,native,Java,Eclipse,Java Native Interface,Native,如果在Eclipse中添加用户定义的库,则可以设置“本机库位置”。此字段允许输入一些目录路径 此路径何时起作用?您指的是配置吗 如果项目使用或,则可能需要此位置。此目录是本机代码(例如,用C编写的Windows DLL)的位置 我认为在您尝试运行代码之前,实际上并不需要这些信息。例如,您可以通过提供此信息。Eclipse在启动java程序时使用此信息构建java.library.path 背景:一些Java框架依赖于本机代码。此代码通常以本机共享库(*.so,*.dll)的形式出现。在Java中

如果在Eclipse中添加用户定义的库,则可以设置“本机库位置”。此字段允许输入一些目录路径

此路径何时起作用?

您指的是配置吗

如果项目使用或,则可能需要此位置。此目录是本机代码(例如,用C编写的Windows DLL)的位置


我认为在您尝试运行代码之前,实际上并不需要这些信息。例如,您可以通过提供此信息。

Eclipse在启动java程序时使用此信息构建
java.library.path

背景:一些Java框架依赖于本机代码。此代码通常以本机共享库(*.so,*.dll)的形式出现。在Java中,可以看到属性为
native
的方法。代码将使用
System.loadLibrary()
加载共享库

为了使代码独立于绝对路径,只需将共享库的名称传递给
System.loadLibrary()
。然后使用系统属性
java.library.path
确定VM应该在哪些目录中查找文件


结合Eclipse定义用户库的功能,您可以轻松地将依赖本机代码的Java库添加到项目中。

因此,特定的
JAR
和它的本机路径之间没有关联?所有本机路径都将添加到单个
java.library.path
,并将被等效地使用?P.S.看起来也像
JNA
忽略此路径并使用其他变量?虽然OSGi定义了一种将DLL包含在JAR中的方法,但普通java不会。一个原因是JNI可以用来访问安装在固定位置的标准OS库。至于JNA,请参阅“仅指定问题”部分。如果将外部jar添加到Java构建路径中,是否始终需要设置本机库位置,或者仅当jar文件位于项目外部时才需要设置本机库位置?或者说它是完全不耦合的?JAR、构建路径和本机库是三件事。别把他们弄糊涂了。JAR位于构建路径上,因此编译器可以检查类型。Java编译器不检查DLL(本机库)。因此,在编译代码时,本机库是不相关的。在运行时,您需要将JAR添加到类路径,将DLL添加到
java.library.path