零下40度裸求: java调用*.so的问题 最近学习java,想利用JNI调用一个*.so文件.在网上找了不少例子,现在我会生成*.h和*.so文件,只是调用时java.lang说找不到*.so,我想是classpath的问题,哪位大虾赐教,谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是在linux下吗?如果.so生成了,只要设定LD_LIBRARY_PATH就可以了,最简方法执行以下命令:export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH然后用java调你的类就可以了 我还是不太懂,索性把不懂的全问了吧: 1)在LINUX下装JAVA时,设置CLASSPATH到底有什么用,java/j2sdk1.4.2_07/lib/dt.jar和java/j2sdk1.4.2_07/lib/tools.jar有什么用 2)我的工作区应该放在什么地方,Exception in thread "main" java.lang.NoClassDefFoundError: testso是什么错误 3)能具体解释一下LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH吗,我编的*.so文件放在什么地方都行么? 不胜感谢!万分感谢!感谢感谢再感谢! 1)在LINUX下装JAVA时,设置CLASSPATH与windwos下的CLASSPATH的功能相同,它包含JVM的搜索路径 dt.jar和tools.jar都是sun java 自带的包,含有com.sun.*,java.swing.*,javax.swing.*等,你在windows下用winzip可以打开看它所含的类2).你的工作区可放在任意位置,不过最好在CLASSPATH中含当前路径 linux下 CLASSPATH=.:$CLASSPATH windwos下set CLASSPATH=.;%CLASSPATH% Exception in thread "main" java.lang.NoClassDefFoundError: testso是在你的JAVA程序中,没有找到类(也应与CLASSPATH有关)3).LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH 表示把pwd的执行结果返回给LD_LIBRARY_PATH,并加在原LD_LIBRARY_PATH前面 pwd 是linux得到当前路径的命令(相当于dos下的cd) a.JAVA JNI在linux下运行时会在LD_LIBRARY_PATH中搜索.so文件 b.如果你只要在当前目录下执行,只要简单地:LD_LIBRARY_PATH:=. c.别忘了前面的export,因为linux的环境变量只对当前进程有效 d.我编的*.so文件放在什么地方都行,只要在LD_LIBRARY_PATH中加入.so的目录 一年的艰辛Java路...(西安的哥们请务必进).. java编译器是什么编译出来的? java 学习路径--过程篇 怎样为这样一个类里面的这个方法写JUnit Test Case? 求Test Case的代码. java创建UTF-16编码的文件乱码..似乎从来没有人碰到过这个问题. 高分求方法:(急) 用javamail怎样设置不同的发信人地址和退信地址 急急,在线等待大侠解决·!!!!JAVA线程的问题 ◆◆问个问题,顺便升星散分. 有没有这样的驱动程序? netty 如何获取设备的响应信息 String args[]和String[] args JGoodies中文乱码问题?
如果.so生成了,只要设定LD_LIBRARY_PATH就可以了,最简方法执行以下命令:
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
然后用java调你的类就可以了
1)在LINUX下装JAVA时,设置CLASSPATH到底有什么用,java/j2sdk1.4.2_07/lib/dt.jar和java/j2sdk1.4.2_07/lib/tools.jar有什么用
2)我的工作区应该放在什么地方,Exception in thread "main" java.lang.NoClassDefFoundError: testso是什么错误
3)能具体解释一下LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH吗,我编的*.so文件放在什么地方都行么?
不胜感谢!万分感谢!感谢感谢再感谢!
dt.jar和tools.jar都是sun java 自带的包,含有com.sun.*,java.swing.*,javax.swing.*等,你在windows下用winzip可以打开看它所含的类
2).你的工作区可放在任意位置,不过最好在CLASSPATH中含当前路径
linux下 CLASSPATH=.:$CLASSPATH windwos下set CLASSPATH=.;%CLASSPATH%
Exception in thread "main" java.lang.NoClassDefFoundError: testso是在你的JAVA程序中,没有找到类(也应与CLASSPATH有关)
3).LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
表示把pwd的执行结果返回给LD_LIBRARY_PATH,并加在原LD_LIBRARY_PATH前面
pwd 是linux得到当前路径的命令(相当于dos下的cd)
a.JAVA JNI在linux下运行时会在LD_LIBRARY_PATH中搜索.so文件
b.如果你只要在当前目录下执行,只要简单地:LD_LIBRARY_PATH:=.
c.别忘了前面的export,因为linux的环境变量只对当前进程有效
d.我编的*.so文件放在什么地方都行,只要在LD_LIBRARY_PATH中加入.so的目录