我正在使用Java 6,并试图使用客户端证书在远程服务器上创buildHttpsURLConnection 。 服务器正在使用自签名根证书,并要求提供受密码保护的客户端证书。 我已经将服务器根证书和客户端证书添加到我在/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/security/cacerts 10.5)中find的默认Java密钥库。 密钥库文件的名称似乎表明客户端证书不应该在那里? 无论如何,将根证书添加到此商店解决了臭名昭着的javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed' problem. 但是,我现在坚持如何使用客户端证书。 我已经尝试了两种方法,并没有让我到任何地方。 首先,首选,尝试: SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); URL url = new URL("https://somehost.dk:3049"); HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); conn.setSSLSocketFactory(sslsocketfactory); InputStream inputstream = conn.getInputStream(); // The last line fails, and gives: // javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 我试过跳过HttpsURLConnection类(不理想,因为我想与服务器通话HTTP),而不是这样做: SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); […]
我正在读一本关于Java的书,它说,你可以宣布整个class级是final 。 我想不出什么地方可以用这个。 我只是新的编程,我想知道如果程序员真的在他们的程序中使用它 。 如果他们这样做,他们什么时候使用它,所以我可以更好地理解它,知道什么时候使用它。 如果Java是面向对象的,并且你声明了一个类的final ,那么它不会阻止类具有对象特性的想法吗?
我想使用Java 8的stream和lambdaexpression式将对象列表转换成Map。 这是我将如何写在Java 7及以下。 private Map<String, Choice> nameMap(List<Choice> choices) { final Map<String, Choice> hashMap = new HashMap<>(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; } 我可以使用Java 8和Guava轻松完成,但我想知道如何在没有Guava的情况下执行此操作。 在番石榴: private Map<String, Choice> nameMap(List<Choice> choices) { return Maps.uniqueIndex(choices, new Function<Choice, String>() { @Override public String apply(final Choice input) { return input.getName(); } […]
在这个问题如何有效地select在C + + 11标准库容器? 是selectC ++集合时使用的方便的stream程图。 我认为这对于那些不确定应该使用哪个集合的人来说是一个有用的资源,所以我试图find一个类似于Java的stream程图,并且无法做到这一点。 什么资源和“备忘单”可用于帮助人们select正确的集合在Java编程时使用? 人们如何知道他们应该使用什么List,Set和Map实现?
我创build的以下地图之间有什么区别(在另一个问题中,人们似乎可以互换地使用它们,我想知道它们是不同的): HashMap<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
我想将oracle jdbc驱动程序添加到我的项目中,作为依赖项(运行时范围) – ojdbc14。 在MVNrepository站点中放入POM的依赖是: <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.3.0</version> </dependency> 当然这不起作用,因为它不在maven使用的中央存储库中。 2个问题: 如何find包含此工件的存储库(如果有)? 我如何添加它,以便Maven将使用它?
所以我试图将我的本地.jar文件依赖项添加到我的build.gradle文件中: apply plugin: 'java' sourceSets { main { java { srcDir 'src/model' } } } dependencies { runtime files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar') runtime fileTree(dir: 'libs', include: '*.jar') } 你可以看到我把.jar文件添加到referencedLibraries文件夹中: https : //github.com/WalnutiQ/wAlnut/tree/version-2.3.1/referencedLibraries 但问题是,当我运行命令:命令行上的gradle构build时,我得到以下错误: error: package com.google.gson does not exist import com.google.gson.Gson; 这是我的整个回购: https : //github.com/WalnutiQ/wAlnut/tree/version-2.3.1
Java是最新版本的OSX上的可选软件包。 但是一旦安装,看起来像JAVA_HOME环境variables没有正确设置 。
为什么发生ArrayIndexOutOfBoundsException以及如何避免在Android?
从eclipse运行Java应用程序时,我的ImageIcon显示得很好。 但创build一个jar后,图像的path显然是搞砸了。 有没有办法在运行时从jar中提取图像,然后我可以打开它? 或者,有没有更好的方法来做到这一点? 如果可能,我想分发一个jar文件。