Error occurred during initialization of VM
Unable to load native library: Error loading shared library libjvm.so: No such file or directory (needed by /usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/libjava.so)
根据提示,找不到 llibjvm.so 动态库,查找libjvm.so路径,如下图所示,主机上libjvm.so路径为
/usr/lib/jvm/default-jvm/jre/lib/amd64/server
find / -name 'libjvm.so'
将上述路径添加到 环境变量中 LD_LIBRARY_PATH 中,修改 /etc/profile,添加以下内容,然后执行 source /etc/profile,即可。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/jvm/default-jvm/jre/lib/amd64/server
关于 LD_LIBRARY_PATH
LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。
移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。
示例:
当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib’ and ‘/usr/lib’.
那么就需要指定环境变量LD_LIBRARY_PATH
假如现在需要在已有的环境变量上添加新的路径名,则采用如下方式:
LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的路径串)
(注:GNU系统可以自动添加在 /etc/ld.so.conf文件中来实现环境变量的设置)
设置方法
编辑
在linux下可以用export命令来设置这个值,比如
在linux终端下输入:export LD_LIBRARY_PATH=/opt/au1200_rm/build_tools/bin: $LD_LIBRARY_PATH:
然后再输入:export
即会显示是否设置正确
export方式在重启后失效,所以也可以用 vim /etc/bashrc ,修改其中的LD_LIBRARY_PATH变量。
例如:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/au1200_rm/build_tools/bin。
区别 LIBRARY_PATH
编辑
StackOverflow 上关于 LIBRARY_PATH 和 LD_LIBRARY_PATH 的解释如下:
LIBRARY_PATHis used by gcc before compilation to search for directories containing libraries that need to be linked to your program.
LD_LIBRARY_PATHis used by your program to search for directories containing the libraries after it has been successfully compiled and linked.