我最近在我的Ubuntu上安装了Java SE 7并尝试使用switch on string编译代码,但是无法做到这一点.我从命令行编译.为什么?
java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b146)
Java HotSpot(TM) Server VM (build 21.0-b16, mixed mode)
Run Code Online (Sandbox Code Playgroud)
incompatible types
found : java.lang.String
required: int
switch(attributes.getValue("tod")){
^
1 error
Run Code Online (Sandbox Code Playgroud) 我需要在Android中的MapView中使用MD5证书.我安装了Oracle的JDK 7.但跑步
keytool -v -list -alias alias_name -keystore my-release-key.keystore
Run Code Online (Sandbox Code Playgroud)
没有给我结果,而是说安装openjdk.如何在oracle jdk 7中使用keytool.我在ubuntu 12.04 64位上.
我正在使用Vim开发Java项目,我需要使用javax包中的一些类.我应该安装和配置什么才能导入其中任何一个?
我已经安装了JDK 7,并使用update-alternative命令将其作为我的默认设置.
例如,当我编译一个使用javax包的类(例如一个名为GUI)时,编译器会显示:
> javac GUI.java
GUI.java:1: error: package javax does not exists
import javax.swing;
^
1 error
Run Code Online (Sandbox Code Playgroud)
我认为它与$ CLASSPATH环境变量有关,但我不知道如何告诉编译器包的位置(因为它在JDK 7中).
在玩证书时,我已经从 jdk 中删除了 cacerts 文件。(usr/lib/jvm/java-7-oracle/jre/lib/security)无论如何要恢复它还是我必须重新安装 jdk?我正在使用 Ubuntu 和 Oracle Jdk 7。
这个 BigDecimalSorting 有什么问题?该代码将数字作为字符串,然后将其转换为 BigDecimal,然后对已排序的 BigDecimal 进行排序和打印。
import java.math.BigDecimal;
import java.util.*;
class Solution {
public static void main(String []argh){
Scanner sc= new Scanner(System.in);
int n=sc.nextInt();
String []s=new String[n];
BigDecimal a[] = null;
for(int i = 0; i < n ; i++){
s[i]=sc.next();
a[i] = new BigDecimal(s[i]);
}
for(int i = 0; i < n-1; i++){
for(int j = 1; j < n; j++){
if(a[i].compareTo(a[j]) == -1){
BigDecimal temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
//Output
for(int …Run Code Online (Sandbox Code Playgroud) 我正在升级依赖于HashMap的Java 7迭代顺序的应用程序.Java 8 HashMap改变了它的迭代顺序,这与一些应用程序(可能是糟糕的设计)不兼容,我必须使用Java 7 HashMaps成功地将应用程序迁移到Java 8.这就是我想到的方式:
这是一个很好的方法吗?遗憾的是,不能重写依赖于Java 7版本的HashMap的部分.
我坚持在这里,我们使用许可IBM Rational Application Developer V8.5包含WebSphere 8.5.0.0为默认发展.作为在WebSphere上运行的旧项目需要更新,并包括jdk从更新1.6到1.7,问题是WebSphere 8.5.0.0只有jdk 1.6(以下为图片,如运行时版本JVM 1.6_64),在第二张图片,这意味着我没有显示jdk 7具体的RAD的Websphere上我的工作区.我现在无法找到下载资源.
尝试解决问题,我参考下面的两个站点:从链接1,我知道我应该去链接2.
1. WebSphere Application Server JVM版本在Rational Application Developer中使用JRE 1.7运行时配置的服务器显示为1.6
2. 使用GUI安装IBM WebSphere SDK Java Technology Edition V7.0或7.1
在链接2中,实际上,不是一步一步的教程,也没有图片作为说明如何jdk 7.0从IBM Install Manager安装.另外,如上所述,由于我们使用RAD,jdk不能是来自Oracle官方网站的开源版本,应该是IBM WebSphere SDK Java Technology Edition Version 7.0.4.1来自IBM官方网站或存储库的特定版本(例如),这就是我认为使用IBM Install Manager完成此安装的原因更好.
注意:如果jdk 7.1针对WebSphere 8.5.0.0的更高版本(甚至更高版本)也可以,则最终目标至少会更新jdk 7.0
我有如下安装管理器,但由于没有一步一步的教程,我卡在这里.
有人可以告诉我如何一步一步地做这件事吗?谢谢
我想了解两个定义之间的区别以及为什么正确的定义是正确的,错误是错误的.
那个显示编译错误的那个
List<List<Integer>> arr2 = new ArrayList<ArrayList<Integer>>();
Run Code Online (Sandbox Code Playgroud)
它给我的错误:
try2.java:8: error: incompatible types: ArrayList<ArrayList<Integer>> cannot be
converted to List<List<Integer>>
List<List<Integer>> arr2 = new ArrayList<ArrayList<Integer>>();
Run Code Online (Sandbox Code Playgroud)
正在工作的那个:
List<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
Run Code Online (Sandbox Code Playgroud)
注意:
我理解为什么下面这个有效:
List<Integer> arr = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)
编辑-1:
现在我只想了解问题所在 List<List<Integer>> arr2 = new ArrayList<ArrayList<Integer>>();
我想根据我在properties文件中提供的设置检索文件.例如,我只想在第一次迭代中获得50个文件并停止获取所有文件夹中可能存在数千个文件.
我怎么能随机获得50个文件并且没有获得所有列表或迭代文件以获得50?
filesList = folder.listFiles( new FileFilter() {
@Override
public boolean accept(File name) {
return (name.isFile() && ( name.getName().contains("key1")));
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:我删除了for声明.即使我只提供了一个文件夹来获取它将获取所有文件,计数器变量仍然循环文件夹中的所有文件不是一个好的解决方案.
我正在尝试使用任何 AES GCM 变体进行 TLS 连接,根据我在文档中的理解,这应该是可能的,但我收到此错误:
Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1989)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1096)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1342)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1369)
Run Code Online (Sandbox Code Playgroud)
问题是我尝试连接的服务器只接受这些密码:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
Run Code Online (Sandbox Code Playgroud)
我无法在此处发布我尝试连接的服务器,但我尝试在 github 存储库上复制该问题。我找不到只接受这些密码套件的服务器,这就是为什么我的 repo 因另一个错误而失败。
git clone https://github.com/andreicristianpetcu/gcm_with_bc_onjdk17
cd gcm_with_bc_onjdk17
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre" mvn clean install
Run Code Online (Sandbox Code Playgroud)
基本上这是来自 GitHub 的代码
package com.github.gcm_with_bc_onjdk17;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.net.ssl.SSLContext;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import …Run Code Online (Sandbox Code Playgroud) java-7 ×10
java ×8
aes-gcm ×1
android ×1
arrays ×1
bigdecimal ×1
bouncycastle ×1
collections ×1
command-line ×1
encryption ×1
file ×1
filefilter ×1
hashmap ×1
installation ×1
java-8 ×1
keystore ×1
keytool ×1
list ×1
security ×1
sorting ×1
ssl ×1
swing ×1
upgrade ×1
websphere ×1