Apr 1, 2013 9:39:42 AM com.keqi.server.core.q uncaughtException
SEVERE: 系统无法正常捕获的线程异常,线程信息:Thread[Thread-13,5,main]
java.lang.NullPointerException
at com.keqi.server.a.propertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:347)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
at com.keqi.server.d.f.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
在做许可证模块的时候遇到,原因是把服务端的jar包加密了,这里用的java调用c的接口,把c接口函数名称
也给绕码了,所以找不到,并报空指针错误。
解决办法,在加密代码配置文件中添加规则,我这里有2个方法需要添加,所以:
-keepclasseswithmembers public class com.keqi.server.license.RsaT {
public <methods>; // 指这个类里的所有方法名称都不加密,如果加密就调用不到。本来是这样的 public native String rsa_main(char x);但是后面参数 char x
// 不知配置什么规则,所以全部不加密了。
}
-keepclasseswithmembers public class com.keqi.server.license.DiffT {
public native int diff_main(); // diff_main()方法名不加密
}
希望对大家有所帮助。
本文讨论了在使用Java调用C接口并进行加密代码处理时遇到的空指针异常问题,主要原因是接口函数名称被绕码导致无法正确调用。文章提供了解决方案,通过在加密配置文件中添加特定规则,确保关键类方法不受加密影响,从而避免异常发生。
350

被折叠的 条评论
为什么被折叠?



