2

我目前正在使用以下代码读取公钥文件:

    // Read Public Key.
    File filePublicKey = new File(path + "/public.key");
    FileInputStream fis = new FileInputStream(path + "/public.key");
    byte[] encodedPublicKey = new byte[(int) filePublicKey.length()];
    fis.read(encodedPublicKey);
    fis.close();

但是,我希望将密钥文件包含在我的 jar 中。我已在 Eclipse 中将密钥文件拖到我的项目中,我正在尝试使用以下内容加载公钥以替换上面的内容:

    InputStream is = getClass().getResourceAsStream( "/RSAAlgorithm2/public.key" );
    byte[] encodedPublicKey = new byte[(int) 2375];
    is.read(encodedPublicKey);
    is.close();

但是我不断收到 NullPointerException。

java.lang.NullPointerException at RSA.LoadKeyPair(RSA.java:122) at RSA.main(RSA.java:31)

这是因为我错误地加载了文件吗?文件可以像这样拖到eclipse中并加载,还是需要将它们与JAR分开?

4

2 回答 2

1

检查是否isnull在做之后getResourceAsStream。如果是,则资源尚未找到。在这种情况下,检查文件的路径,它是相对于您的类路径的。我不知道你的项目设置,但我会尝试简单地使用"/public.key"......</p>

于 2012-04-22T22:18:45.897 回答
0

使用此名称,您必须将“public.key”文件放入 RSAAlgorithm2 包中。这意味着在您的“jar”文件中,您应该看到一个名为“RSAAlgorithm2/public.key”的条目。

于 2012-04-22T22:23:37.283 回答