找到了解决方案!
Ubuntu默认忽略命令“RD_LIBRARY_PATH”,因此我需要在“.bashrc”而不是“/ etc / environment”或.profile中添加这些代码。
它现在完美无缺!
我正在尝试运行一个从C / C ++代码中读取Java方法的程序。 (我在Windows上成功了,现在,我在Linux上工作)
我成功编译并在Ubuntu上运行,但问题是.. 每当我尝试运行程序时,我都必须在终端上输入以下命令..
source /etc/environment
./invoke #program name is invoke
如果每次启动电脑时都没有输入“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
我想要的是,如你所知,我想在不输入“source / etc / environment”的情况下运行程序。 我也尝试在/ etc / profile上输入那些PATH,但结果是一样的...每次重新启动我的电脑时都应输入“source / etc / profile”..
如何在没有每次启动时输入“source / etc / environment”内容的情况下将其永久应用于整个系统范围?
如果你需要查看程序的源代码,这里是可下载的地址: http://cfile237.uf.daum.net/attach/247819495212DF1C07B9EB
答案 0 :(得分:9)
这对我有用:
对于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
答案 1 :(得分:1)
我遇到了设置路径的问题(永久)但是我使用的是Red Hat,如果你看change PATH permanently on Ubuntu它可能对你有帮助。 Red Hat .profile 上有一个文件,一旦你添加了export语句,它们就会在计算机启动时加载。 :)应该有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
答案 2 :(得分:0)
将“-Djava.library.path = FULL_PATH_HERE / jre / lib / amd64”作为C代码中的JVM选项。
编辑full_path_here部分。
允许路径是相对的,但我认为你不能使用$ JAVA_HOME作为环境变量的占位符。
答案 3 :(得分:0)
找到了解决方案!
Ubuntu默认忽略命令“RD_LIBRARY_PATH”,因此我需要在“.bashrc”而不是“/ etc / environment”或.profile中添加这些代码。
它现在完美无缺!
答案 4 :(得分:0)