在大家刚入公司开始工作的时候,总会遇到一些实战问题,那么今天我们就来给大家分享一些java初入公司实战遇到的问题,大家可以多学习一下这里边的经验!
1、软件包不存在/软件包 javax.jms 不存在
这是由于javac编译时找不到javax.jms所在的软件包,因此将javax.jms所在的软件包加入到classpath中即可,
如javac -classpath ./lib/j2ee.jar *.java
2、如何将class文件打包成jar
jar cvmf manifest myjar.jar com
mainfest可以为空,com为要打包的class所在的目录,可以是多层,根据package的打包目录而定
3、JNI开发的class,在java.library.path中找不到dll库
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jwtp_api in java.library.path
则,需要将dll库所在的目录加入到path中即可,如set path=dll所在目录;%path%
-Djava.library.path=dll所在目录,不知道为何不可以
4、JNI调用Java类时,报错Exception in thread "main" java.lang.UnsatisfiedLinkError: wtpUpLoad
我的错误是,头文件和c文件中函数名称不符,
Java_com_tongtech_wtp_client_wtpDownLoad c代码中
Java_com_tongtech_wtp_WtpClient_wtpDownLoad 头文件
当使用 JNI 从 Java 程序访问本机代码时,您会遇到许多问题。您会遇到的三个最常见的错误是:
(1)无法找到动态链接。它所产生的错误消息是:java.lang.UnsatisfiedLinkError。这通常指无法找到共享库,或者无法找到共享库内特定的本机方法。
(2)无法找到共享库文件。当用 System.loadLibrary(String libname) 方法(参数是文件名)装入库文件时,请确保文件名拼写正确以及没有指定扩展名。还有,确保库文件的位置在类路径中,从而确保 JVM 可以访问该库文件。
(3)无法找到具有指定说明的方法。确保您的 C/C++ 函数实现拥有与头文件中的函数说明相同的说明。
当然在工作中遇到的问题肯定不止这些,不过大家遇到问题不要害怕,我们一点一点的积累,这样就会提高大家的实战经验了,对今后的工作是有帮助的,最后大家如果想要了解更多java实战知识,敬请关注奇Q工具网。
推荐阅读: