标签: java-7

如何在Java 7中启用TLS 1.2

我试图在我的使用JBoss 6.4和Java 1.7的Web应用程序中启用TLS 1.2.我-Dhttp.protocols = TLSv1.2在我的应用程序环境中,但它似乎不适合我.

我有什么办法可以启用TLS 1.2吗?

我写了一个简单的程序

context = SSLContext.getInstance("TLSv1.2");
context.init(null,null,null);
SSLContext.setDefault(context); 
SSLSocketFactory factory = (SSLSocketFactory)context.getSocketFactory();
SSLSocket socket = (SSLSocket)factory.createSocket();
protocols = socket.getEnabledProtocols();
Run Code Online (Sandbox Code Playgroud)

在应用程序中运行此程序后,TLS 1.2启用.我不想运行此程序,但我想在应用程序启动期间直接启用它.有什么办法吗?

java jboss java-7 tls1.2

33
推荐指数
6
解决办法
10万
查看次数

Java三元运算符对泛型类型推断的影响

public List<String> foo1() {
    List<String> retval = bar();
    if (retval == null)
        return Collections.emptyList();
    else
        return retval;
}

public List<String> foo2() {
    List<String> retval = bar();
    return retval == null ? Collections.emptyList() : retval;
}
Run Code Online (Sandbox Code Playgroud)

为什么foo1()编译很好而foo2()有错误?(更准确地说"类型不匹配:无法从List <capture#1-of?extends Object>转换为List <String>")

我原以为这两个函数都会编译成相同的字节码,所以一个聪明的编译器应该推断出正确的类型emptyList()...

java generics compiler-errors java-7

31
推荐指数
2
解决办法
1120
查看次数

增强的循环编译适用于JDK 8但不适用于7

考虑下面的代码片段,我在进行一些重构之后,在检查为什么构建服务器报告了一个破坏的构建但在我的IDE中没问题时:

List<String> text;
...
for (String text : text) {...}
Run Code Online (Sandbox Code Playgroud)

因此,相同的名称用于for-each中的String和List.

这当然不是很明智,但是在重命名之前遵循我的好意,我看到上面的代码用JDK 8编译得很好,但是给出了JDK 7的以下错误:

  error: for-each not applicable to expression type
        for (String text : text) {
                           ^
  required: array or java.lang.Iterable
  found:    String
1 error
Run Code Online (Sandbox Code Playgroud)

我知道,变化在JDK中这方面的几个部分组成 - 但有人可以见识一下为什么会出现正是这种行为?


更新: 由于我得到了一些关于不同行为的评论,这里是一个完整的示例类:

import java.util.Arrays;
import java.util.List;

public class Strange {

    List<String> text = Arrays.asList("Max", "Alex", "Maria");

    public static void main(String[] args) {
        new Strange().doSomething("Alex");
    }

    public void doSomething(String name) {
        for (String text : text) {
            System.out.println(text.equals("Alex"));
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

这是编译过程和输出(Windows …

java foreach language-lawyer java-7 java-8

31
推荐指数
3
解决办法
2124
查看次数

将现有泛型转换为菱形语法

我更喜欢Java 7引入的泛型钻石语法 - 而不是从节省时间的角度来看(毕竟大多数IDE都为你填补了这一点)但仅仅因为它使代码看起来更清晰.由于这个和其他原因(主要是我正在开发一个新的软件和Java 7中的一些新API将是有用的),我很可能会切换现有的代码库来使用/需要Java 7.

然而,有一个公平的块已经编写了前钻石语法,我想始终使用钻石语法.是否有IDE快捷方式(我使用Netbeans但显然可以在任何免费的IDE中打开项目来执行任务)或其他可以自动切换现有通用代码以使用菱形语法的东西?

java generics java-7

30
推荐指数
3
解决办法
7156
查看次数

Cobertura和Java 7支持

当cobertura支持java 7时的任何想法?

找到http://sourceforge.net/tracker/index.php?func=detail&aid=3295711&group_id=130558&atid=720018

我们更喜欢cobertura over emma和其他代码覆盖工具,看起来我们必须再次重做所有这些,现在它们都没有支持java 7.

谢谢

cobertura java-7

30
推荐指数
3
解决办法
1万
查看次数

Java 7中的闭包

我听说可以在下一个Java标准中引入关闭,该标准计划在明年夏天左右发布.

这种语法是什么样的?

我在某处读到,在Java中引入闭包是一个比java中的泛型更大的变化.这是真的吗?利弊?

(到现在我们肯定知道闭包不会包含在下一个Java版本中)

要么

编辑:http://puredanger.com/tech/2009/11/18/closures-after-all/:D

edit2:重新思考JDK7:http://blogs.oracle.com/mr/entry/rethinking_jdk7

edit3:没有时间可以丢失!:http://blogs.oracle.com/mr/entry/quartet

java syntax closures java-7

29
推荐指数
3
解决办法
2万
查看次数

为什么收集文字?

从Java 7上的各种在线文章中我已经知道Java 7将具有如下所示的集合文字1:

List<String> fruits = [ "Apple", "Mango", "Guava" ];
Set<String> flowers = { "Rose", "Daisy", "Chrysanthemum" };
Map<Integer, String> hindiNums = { 1 : "Ek", 2 : "Do", 3 : "Teen" }; 
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 难道不可能of在所有集合类中提供静态方法,可以按如下方式使用:

List<String> fruits = ArrayList.of("Apple", "Mango", "Guava");

IMO看起来和文字版本一样好,而且也相当简洁.那么为什么他们必须发明一种新的语法(编辑: '新'我的意思'新的Java'.)?

  1. 当我说List<String> fruits = [ "Apple", "Mango", "Guava" ];什么List我真的得到什么?它会是ArrayList或者LinkedList别的吗?

1正如评论中所指出的,集合文字并没有为Java 7,也不是Java 8做出决定.(这是Oracle开发人员Brian Goetz 的一封电子邮件,总结了不包括此功能的基本原理;这里是提案本身.)

java collections java-7

28
推荐指数
2
解决办法
7639
查看次数

JDK 7类文件向后兼容JDK 6

JDK 7的哪些功能(不包括invokedynamic,因为它不被java使用)导致新的类文件版本不符合JDK 6.它表明所有功能都可以由生成粘合代码的编译器实现.例如,switch语句中的String可以使用编译器生成的重复ifeq语句来实现.我希望能够为编译器提供-source 1.7 -target 1.6标志以符合jre 6,同时在jdk 7中使用项目硬币功能.

java java-7

28
推荐指数
1
解决办法
2万
查看次数

将Java 7编译为Java 6

我知道Java 7的运行时功能不适用于Java 6,但由于没有添加新的字节代码,新的字节代码invokedynamic只与非Java语言相关,我想知道转换Java有多难7源代码(新switch语句,菱形运算符)到纯Java 6(即能够开始将源转换为Java 7而不会失去Java 6兼容性).

有什么指针吗?

java porting java-6 java-7

28
推荐指数
2
解决办法
9907
查看次数

初始化VM时出错(java/lang/NoClassDefFoundError:java/lang/Object)

我正在尝试安装Java来使用Eclipse(我按照所有说明安装了Java和Eclipse)但是我的Eclipse由于一些错误的配置而无法启动.我无法弄清楚为什么它不适合我.

Eclipse安装:

  1. 在Eclipse中提取Eclipse C:\eclipse
  2. 创建了具有目标的桌面的快捷方式 C:\eclipse\eclipse.exe

当我尝试使用此快捷方式运行Eclipse时,我会看到关注Eclipse启动画面一秒钟后它会消失.Eclipse根本没有启动.

Eclipse启动画面

JAVA安装:

  1. 安装JDK C:\Program Files\Java\jdk1.7.0_10
  2. 已安装JRE C:\Program Files\Java\jre7

环境变量配置:

JAVA_HOME = C:\Program Files\Java\jdk1.7.0_10
PATH = C:\Program Files\Java\jdk1.7.0_10\bin;
Run Code Online (Sandbox Code Playgroud)

我使用控制台测试了我的Java安装并找出了这个问题,但我不知道如何修复它,我想这会导致Eclipse无法启动.

问题:

在此输入图像描述

java eclipse windows java-7

27
推荐指数
3
解决办法
12万
查看次数