2015-04-28 81 views
0

要运行java我需要库ld-linux.so.3来位于/ lib目录中。 我需要这个图书馆坐在不同的地方。 如何指定java以在其他目录中查找它? 例如/家庭/张丹/库/在Linux上替换Java/lib目录

编辑: 我试图运行Java -Djava.library.path = /家庭/张丹/库

,但我仍然得到错误./java:没有这样的文件或目录

+0

也许:http://stackoverflow.com/questions/16227045/how-to-add-so-file-to-the-java-library-path-in-linux –

回答

0

当我从你的问题的理解,你需要改变Java环境变量指向其他目录..

环境变量中的.bashrc文件中设置,所以编辑这个文件做以下

1-打开端子

`CTRL + ALT + DEL` 

2-打开的bashrc文件进行编辑

nano ~/.bashrc 

3-编辑JAVA_HOME变量,如果存在不存在执行以下

export JAVA_HOME= new Java path 
export PATH=$PATH:$JAVA_HOME/bin 

4-保存文件CTRL +X + Y + Enter 5-应用更改

source ~/.bashrc 
+0

不,我需要的是告诉java在我定义的特定目录中搜​​索ld-linux.so.3库而不是默认的/ lib目录 – danidin

1

'java'程序不搜索ld-linux。 ld-linux是一个加载器(因此名字)并且在之前运行可执行文件,在这种情况下是java,甚至开始。这就是为什么它是你的shell报告说java无法启动,而不是java报告它在初始化某些东西时遇到麻烦。有许多方法可以改变ld-linux在可执行程序所需要的其他共享库中的位置,但它们不能用于ld-linux本身,因为(据我们所知)宇宙是因果关系,时间流入一个方向。

我还没有尝试过,但接受的答案https://unix.stackexchange.com/questions/17428/moved-bin-and-other-folders-how-to-get-them-back(如果有人不小心移动了他们的/ lib目录包括/lib目录/ LD-Linux *的错地方了)说,你可以明确运行一个指定ld -linux(大概是任何工作的),并让它运行你的可执行文件,在这里java(大概有适当的参数)。

但是我想知道为什么你认为你需要改变ld-linux,因为一旦程序运行它就会消失。如果你只是想改变得到加载,LD_LIBRARY_PATH,也许LD_PRELOAD可以做到这一点,没有任何改变ld-linux。