find解决scheme!
Ubuntu默认情况下忽略命令“RD_LIBRARY_PATH”,因此我需要在“.bashrc”而不是“/ etc / environment”或.profile中添加这些代码。
它现在工作得很好!
我试图运行一个从C / C ++代码中读取Java方法的程序。 (我成功地在Windows上完成了,现在我正在使用Linux)
我成功编译并运行在Ubuntu上,但是,问题是..每当我尝试运行该程序,我必须在terminal上键入以下命令..
source /etc/environment ./invoke #program name is invoke
如果我每次启动我的电脑时都不input“source / etc / environment”,我得到的错误信息是…
error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory
好。 这是我在/ etc / environment中添加的内容
export PATH="$PATH:/usr/lib/jvm/jdk1.7.0_25_x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_25_x64 export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server
我想要的是,如你所知,我想运行该程序,而不input“源/ etc /环境”。 我也尝试在/ etc / profile上键入这些PATH,但结果是一样的…每次重新启动我的电脑时,我都应该input“source / etc / profile”。
如何使它永久适用于整个系统范围,而无需每次启动时input“source / etc / environment”东西?
如果你需要看到程序的源代码,这里是可下载的地址: http : //cfile237.uf.daum.net/attach/247819495212DF1C07B9EB
这对我工作:
对于x86:
export LD_LIBRARY_PATH=/usr/lib/jvm/default-java/jre/lib/i386:/usr/lib/jvm/default-java/jre/lib/i386/server
对于x86_64
export LD_LIBRARY_PATH=/usr/lib/jvm/default-java/jre/lib/amd64:/usr/lib/jvm/default-java/jre/lib/amd64/server
但是我使用Red Hat的时候遇到了同样的问题(永久性的),如果你在Ubuntu上查看永久的PATH,它可能会帮助你。 在Red Hat .profile上有一个文件,一旦你添加了你的exports语句,它们就会在计算机启动的时候加载。 :)应该是Ubuntu的那种文件
export PATH="$PATH:/usr/lib/jvm/jdk1.7.0_25_x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
导出JAVA_HOME = / usr / lib / jvm / jdk1.7.0_25_x64
在C代码中将“-Djava.library.path = FULL_PATH_HERE / jre / lib / amd64”作为JVM选项。
编辑full_path_here部分。
路径允许是相对的,但我不认为你可以使用$ JAVA_HOME作为环境变量的占位符。
找到解决方案!
Ubuntu默认情况下忽略命令“RD_LIBRARY_PATH”,因此我需要在“.bashrc”而不是“/ etc / environment”或.profile中添加这些代码。
它现在工作得很好!