java
文章平均质量分 69
dream2009gd
这个作者很懒,什么都没留下…
展开
-
log4j警告的解决办法
log4j--log for java (java的日志)在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包----Log4j。很多软件包中包含了log4j的lib文件,有些软件却需要手动下载log4j包,视具体情况而定。如果没有加入log4j包,或者是log4j包未添加入环境变量,或者未配置log4j的原创 2013-02-08 16:18:32 · 4297 阅读 · 0 评论 -
linux下java程序使用第三方jar包
javac编译源文件,源文件中import了第三方的源文件包,将会提示某些包不存在,三种解决方案如下。解决方案一:javac命令中有一个选项是classpath-classpath 类路径 设置用户类路径,它将覆盖 CLASSPATH 环境变量中的用户类路径。若既未指定 CLASSPATH 又未指定 -classpath,则用户类路径由当前目录构成。 如果需要设置 的用原创 2013-02-04 19:18:40 · 6703 阅读 · 1 评论 -
linux下使用jni实现c++调用java程序(1)准备工作
c++调用java程序一般使用两种方法:(1)JNI(java native interface)(2)用socket通信,建立c++客户端和java服务端准备工作:安装java,并配置环境变量#echo $JAVA_HOME/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0#echo $JRE_HOME/usr/lib/jvm/原创 2013-03-04 23:23:10 · 1120 阅读 · 0 评论 -
linux下使用jni实现c++调用java程序(2)找不到java类的问题
初用java和jni使用,很多地方出现错误,最恶心的错误就是:A fatal error has been detected by the Java Runtime Environment.....或者是提示:find java class error! 这是因为c++程序没有找到需要调用的java class文件。如果使用jni找不到java类的时候,一般问题出现原创 2013-03-07 14:20:35 · 1761 阅读 · 0 评论 -
linux下使用jni实现c++调用java程序(3)多线程jni使用
jni调用c++代码时,若c++实现里面采用了多线程,则会出现jvm crash的情况。查了一下jni的说明,其中提到:JNIEnv *env指针和jobject对象都不能跨线程使用,但是java虚拟机jvm可以共享对于jobject,解决办法是 a、glb_obj = glb_env->NewGlobalRef(obj); //创建一个全局变量原创 2013-03-08 20:46:15 · 2584 阅读 · 0 评论 -
linux下使用jni实现c++调用java程序(4)DestroyJavaVM出现错误
在使用c++多线程程序时,本来以为可以每个线程单独生成一个jvm虚拟机,在虚拟机上调用完java类,最后销毁,但后来发现这是行不通的:首先,JNIEnv *env指针和jobject对象都不能跨线程使用其次,jvm可以多线程共享,但是只有主线程可以销毁虚拟机卸载 Java 虚拟机并回收资源:jint DestroyJavaVM(JavaVM *vm);原创 2013-03-09 22:38:49 · 2618 阅读 · 0 评论 -
linux下使用jni实现c++调用java程序(5)参考资料总结
网上关于利用jni实现c++调用java程序各种博客资料一大堆,但实在太乱了另外特别是在jni多线程中的使用,资料比较少所以现在把一些我用过的reference和参考的博客总结如下: 两个reference,有些函数某一参考中可能没有,就参考另一reference吧:oracle reference:http://docs.oracle.com/javase/6/doc原创 2013-03-14 15:26:41 · 765 阅读 · 0 评论