我必须使用 GnuPG 和 Java 与客户交换加密和签名的文件。
所以我下载并编译了Java JNI绑定到gpgme库: https ://github.com/guardianproject/gnupg-for-java
但是当我运行测试套件时它失败了:
$ ant test
...
test:
[delete] Deleting directory /tmp/gnupg-for-java-tests
[delete] Deleting directory /tmp/gnupg-for-java-tests
[mkdir] Created dir: /tmp/gnupg-for-java-tests
[java] Executing '/usr/java/jdk1.8.0_92/jre/bin/java' with arguments:
[java] '-Djava.library.path=/java_gnupg/build'
[java] '-classpath'
[java] '/java_gnupg/build/gnupg-for-java-0.2-pre.jar:/java_gnupg/build/hamcrest-core-1.3.jar:/java_gnupg/build/junit-4.12.jar:/java_gnupg/build/classes/com/freiheit/gnupg/GnuPGContext.class:/java_gnupg/build/classes/com/freiheit/gnupg/GnuPGData.class:/java_gnupg/build/classes/com/freiheit/gnupg/GnuPGException.class:/java_gnupg/build/classes/com/freiheit/gnupg/GnuPGGenkeyResult.class:/java_gnupg/build/classes/com/freiheit/gnupg/GnuPGKey.class:/java_gnupg/build/classes/com/freiheit/gnupg/GnuPGPeer.class:/java_gnupg/build/classes/com/freiheit/gnupg/GnuPGSignature.class:/java_gnupg/build/classes/com/freiheit/gnupg/tests/GnuPGTestSuite.class'
[java] 'junit.textui.TestRunner'
[java] 'com.freiheit.gnupg.tests.GnuPGTestSuite'
[java]
[java] The ' characters around the executable and arguments are
[java] not part of the command.
[java] suite()
[java] Failed to invoke suite():java.lang.NullPointerException
[java] Could not create and run test suite: java.lang.NullPointerException
[java] Java Result: 2
BUILD SUCCESSFUL
Total time: 0 seconds
为什么我得到 NullPointerException?我能做些什么来修复它?
我的环境:
$ java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
$ gpgme-config --version
1.4.3
$ gpg --version
gpg (GnuPG) 1.4.20
...
我通常在这台机器上使用 GnuPG:
$ gpg --list-keys
/home/mn/.gnupg/pubring.gpg
pub 2048R/62733741 2011-12-15
uid nopasswd
sub 2048R/902CAF09 2011-12-15
pub 2048R/AC75E4AD 2014-10-20
uid Test Space
sub 2048R/8309D68D 2014-10-20
pub 2048R/86AD2898 2014-11-24
uid admin
sub 2048R/14C8BB02 2014-11-24
....