我已经设置了一个自签名证书来测试ssl java连接-但是,它拒绝查找java
trustStore。除了将类编译到的文件夹(使用netbeans)(以及使用netbeans)之外,我还将其副本保存在/ Java / jre6 /
lib / security中,以及上述都不起作用,因为当我运行以下命令时-trustStore = null。
public class ShowTrustStore {
public static void main(String[] args) {
System.setProperty("javax.net.ssl.keyStore", "keystore.jks");
System.setProperty("javax.net.ssl.trustStrore", "cacerts.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
String trustStore = System.getProperty("javax.net.ssl.trustStore");
if (trustStore == null) {
System.out.println("javax.net.ssl.trustStore is not defined");
} else {
System.out.println("javax.net.ssl.trustStore = " + trustStore);
}
}
}
如何正确设置路径?
* UPDATE ***使用getFile()方法和更多调试数据:
package ssltest;
public class Main {
public static void main(String[] args) {
// System.setProperty("javax.net.ssl.keyStore", "/keystore.jks");
// System.setProperty("javax.net.ssl.trustStrore", "/java.home/cacerts.jks");
// System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
// System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
try {
Main.class.getResource("trustStore.jks").getFile();
} catch (Exception e) {
e.printStackTrace();
}
String trustStore = System.getProperty("javax.net.ssl.trustStore");
if (trustStore == null) {
String storeLoc;
storeLoc = System.getProperty("java.class.path");
System.out.println("classpath: " + storeLoc);
}
trustStore = System.getProperty("javax.net.ssl.trustStore");
if (trustStore == null) {
System.out.println("javax.net.ssl.trustStore is not defined");
} else {
System.out.println("javax.net.ssl.trustStore = " + trustStore);
}
}
}
运行:java.lang.NullPointerException类路径:C:\ Users \ Main \ Documents \
NetBeansProjects \ sslTest \ build \ classes; C:\ Users \ Main \ Documents \
NetBeansProjects \ sslTest \ src at ssltest.Main.main(Main.java
:15)未定义javax.net.ssl.trustStore建立成功(总时间:0秒)
您有错字-是trustStore
。
除了使用设置变量外System.setProperty(..)
,您还可以使用
-Djavax.net.ssl.keyStore=path/to/keystore.jks
所以我试图从我的Java代码访问HTTPS服务器,但由于本地主机和服务器之间的SSL握手问题,我无法访问。我试图访问的服务器具有从专用证书颁发机构颁发的有效证书。 因此,经过一些研究,我将CA根证书导入到JVM信任存储中。我如下所示使用keytool命令将证书导入到JRE。keytool-import-alias mycertificate-keystore..\lib\security\cace
问题内容: 我有以下结构 include.php文件具有以下内容 在index.php页面中,我包括了 当我打开页面index.php时,出现以下警告和致命错误。我不明白是什么原因导致此错误。当我给出绝对路径时,它可以工作。但是我相信绝对的路线不是一个好主意。 提前致谢 问题答案: 采用 获取脚本的当前路径,这应该可以解决您的问题。 所以: 这样可以防止您可以从其他文件夹运行PHP脚本的情况,因此
问题内容: 我已将项目导出到Eclipse中的可运行JAR。我的代码中有几个地方完成了以下操作。 现在,该项目为JAR形式,这些目录似乎不存在,并且加载这些文件失败。我很确定我要引用的文件都打包在JAR中。在导出到JAR时,目录是否以任何特定方式更改?关于如何进行这项工作还有其他想法吗? 问题答案: 您需要将它们视为类路径资源,而不是本地磁盘文件系统路径。当您将文件打包到JAR中并且您也不想依赖于
问题内容: 任何人都可以解释一下Spring中path属性如何将对象从html形式绑定到Java类。我是Spring Web Framework的新手,请帮忙。 问题答案: 长话短说,使用Java bean约定将path属性绑定到Java属性中。例如以下形式: 以及以下控制器处理程序方法: 如果使用以下属性定义了Student类,则将自动绑定: 规范文档的第8.3节提供了有关JavaBeans对流
我在一个android应用程序中工作,正在使用一个DialogFragment来显示一个对话框,我想让那个DialogFragment不可取消。我已经将对话框可取消属性设置为false,但它仍然不受影响。 请查看我的代码,并建议我一个解决方案。
问题内容: 任何人都知道为什么该命令在Windows中可以正常工作,但是在Linux中,我得到了ClassNotFoundException game.ui.Main 我的文件夹结构如下:lib /-Jars游戏/-类文件 这是最新的Java 6。 问题答案: 类路径语法与操作系统有关。来自维基百科: 命令行Classpath语法与文件系统密切相关,取决于操作系统。例如: 在所有类似Unix的操作