标签: java-7

在Play Framework中使用Files.createSymbolicLink获取FileSystemException"客户端不拥有所需的权限"

我正在尝试在Play中使用新的Java 7 Files.createSymbolicLink()方法!框架,我得到以下异常:

RuntimeException occured : java.nio.file.FileSystemException: c:\work\foo\bar:
A required privilege is not held by the client.
Run Code Online (Sandbox Code Playgroud)

这是我第一次遇到Java的权限模型,所以我理解发生了什么,但还不知道如何解决它(我想给控制器更多的权限).

如果有人能够比我找到答案更快地回答这里,我(以及未来的读者)将不胜感激.

java permissions nio java-7 playframework

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

Java 7至少和Java 6一样稳定吗?

我记得最初发布Java 7时,有许多建议不要将它用于任何事情,因为编译器优化中存在一些错误.这显然不仅仅是假设的.从那以后,我没有密切关注这种情况; 是否已经解决了这些问题,通常认为此时使用是安全的?

来自java.com的这个页面让我觉得它还没有准备好,但我不想过多地阅读它.如果它还不安全,是否足以-XX:-UseLoopPredicate用作VM参数?

请注意,我不仅指代特定的Lucene问题,还指Java 7的一般稳定性.Java 7是否至少与Java 6一样稳定?

java jvm-hotspot java-7

20
推荐指数
1
解决办法
2839
查看次数

Java 7 zip文件系统提供程序似乎不接受URI中的空格

我一直在测试所有可能的变体和排列,但我似乎无法使用zip/jar方案为包含空格的路径(URI)构建FileSystemProvider.Oracle Docs提供了一个非常简单的测试用例.我冒昧地修改了这个例子,只是在URI中添加空格,它就停止工作了.下面的代码段:

import java.util.*;
import java.net.URI;
import java.nio.file.*;

public class Test {
    public static void main(String [] args) throws Throwable {
        Map<String, String> env = new HashMap<>(); 
        env.put("create", "true");
        URI uri = new URI("jar:file:/c:/dir%20with%20spaces/zipfstest.zip");
        Path dir = Paths.get("C:\\dir with spaces");
        if(Files.exists(dir) && Files.isDirectory(dir)) {
            try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {}
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我执行此代码(Windows,JDK7u2,x32和x64)时,我得到以下异常:

java.lang.IllegalArgumentException: Illegal character in path at index 12: file:/c:/dir with spaces/zipfstest.zip
    at com.sun.nio.zipfs.ZipFileSystemProvider.uriToPath(ZipFileSystemProvider.java:87)
    at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:107)
    at java.nio.file.FileSystems.newFileSystem(FileSystems.java:322)
    at java.nio.file.FileSystems.newFileSystem(FileSystems.java:272)
Run Code Online (Sandbox Code Playgroud)

如果我使用+而不是%20作为空格转义字符,则抛出另一个异常:

java.nio.file.NoSuchFileException: c:\dir+with+spaces\zipfstest.zip
    at …
Run Code Online (Sandbox Code Playgroud)

java java-7

20
推荐指数
3
解决办法
8829
查看次数

如何配置Tomcat以使用Java 7

我有一个java 6字节代码的Web应用程序,并希望在Java 7 JVM环境中测试它.为此,我想配置Tomcat(用于运行Web应用程序)以使用Java 7.现在我的问题是如何做到这一点?

我是否只将JAVA_HOME环境变量设置为安装Java 7的路径,以便在正确的JVM(版本7)中运行tomcat?或者还有另一种方法吗?

java tomcat java-7

20
推荐指数
2
解决办法
8万
查看次数

为什么不能在匿名内部类上使用菱形推断类型?

在Java 7及更高版本中,diamond可用于正常推断类型,因此没有问题:

List<String> list = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

但是,对于像这样的匿名内部类,它不能:

List<String> st = new List<>() { //Doesn't compile

    //Implementation here

}
Run Code Online (Sandbox Code Playgroud)

为什么是这样?从逻辑上讲,在这种情况下,我可以将类型推断为String.这个决定的逻辑原因是,在匿名内部类中实际上不能推断出类型,还是由于其他原因而省略了?

java type-inference java-7

20
推荐指数
2
解决办法
7635
查看次数

Java:将文本文件的内容打印到屏幕

我有一个名为的文本文件foo.txt,其内容如下:

这个

是

文本

如何在Java 7中将此确切文件打印到屏幕上?

java io text java-7

20
推荐指数
2
解决办法
11万
查看次数

Java 7:获取资源路径(作为Path类型的对象)

我正在使用Java 7的功能来读取文件.为此我需要一个类型的对象Path.在我的代码中,我使用getResource()函数来获取文件的相对路径(类型URL).

但是,现在我遇到的问题是,我现在不是真的如何从一个类型URL的对象Path轻松地获得类型的对象(无需经过铸件到例如URI然后再到File那个Path)?

这是一个示例,向您展示我想要做的事情:

URL url = getClass().getResource("file.txt");
Path path = (new File(url.toURI())).toPath(); //is there an easier way?
List<String> list = Files.readAllLines(path, Charset.defaultCharset());
Run Code Online (Sandbox Code Playgroud)

那么有没有更简单的方法来实现这一点,而不必在第2行做那些代码混乱?

nio java-7

20
推荐指数
1
解决办法
9738
查看次数

启用TLSv1.2和TLS_RSA_WITH_AES_256_CBC_SHA256密码套件

Server: 
TLS Version: v1.2
Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 

Client:
JRE 1.7
Run Code Online (Sandbox Code Playgroud)

当我尝试通过SSL直接从客户端连接到服务器时,我收到以下错误:

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)
Run Code Online (Sandbox Code Playgroud)

以下代码启用TLSv1.2

  Set<String> enabledTLSSet = new HashSet<String>(Arrays.asList(sslsocket.getEnabledProtocols()));
  enabledTLSSet.add("TLSv1.2");      
  sslsocket.setEnabledProtocols(enabledTLSSet.toArray(new String[enabledTLSSet.size()]));
Run Code Online (Sandbox Code Playgroud)

以下代码启用了TLS_RSA_WITH_AES_256_CBC_SHA256密码套件:

Set<String> enabledCipherSuitesSet = new HashSet<String>(Arrays.asList(sslsocket.getEnabledCipherSuites()));
      enabledCipherSuitesSet.add("TLS_RSA_WITH_AES_256_CBC_SHA256");
      sslsocket.setEnabledCipherSuites(enabledCipherSuitesSet.toArray(new String[enabledCipherSuitesSet.size()]));
Run Code Online (Sandbox Code Playgroud)

从Java代码执行上述两个操作后,我可以通过SSL成功连接到服务器.

是否有可能使/力TLSv1.2和TLS_RSA_WITH_AES_256_CBC_SHA256Java 7中,而无需通过性能,参数或调试道具改变任何Java代码?

我尝试了所有形式和组合(启用和禁用)以及失败的所有以下属性.

-Dhttps.protocols=TLSv1.2
-Dhttps.cipherSuites=TLS_RSA_WITH_AES_256_CBC_SHA256
-Ddeployment.security.TLSv1.2=true
Run Code Online (Sandbox Code Playgroud)

我正在执行类似下面的程序:

java -jar -Dhttps.protocols=TLSv1.2 -Dhttps.cipherSuites=TLS_RSA_WITH_AES_256_CBC_SHA256 Ddeployment.security.TLSv1.2=true -Djavax.net.debug=ssl:handshake SSLPoker.jar <SERVER> 443
Run Code Online (Sandbox Code Playgroud)

SSLPoker包含以下代码:

package com.ashok.ssl;

import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.*;

/**
 * Establish a SSL connection to a host and …
Run Code Online (Sandbox Code Playgroud)

encryption ssl java-7 java-security tls1.2

20
推荐指数
2
解决办法
7万
查看次数

此语言级别不支持intellij功能(...).我无法编译

IntelliJ正在向我显示此错误

我刚刚建立了我的新电脑,我的java东西都没有工作......我的常规Intellij在我第一次尝试时正在工作,但我的android工作室无法安装,因为它无法找到jdk的路径.这是我问过的问题.由于那不起作用,我不得不多次重新安装java,现在我的IntelliJ无法正常工作.这是一个错误的图片(我收到一个错误,告诉我在这个语言级别不支持for-each循环).

我试图在我的D:驱动器上安装JDK,但是没有用.我目前正在尝试使用java 1.8u71(尝试过u65和1.7u47),但没有一个有效.

java foreach intellij-idea java-7 java-8

20
推荐指数
4
解决办法
3万
查看次数

在try-with-resources中声明的变量注释?

只是想知道哪些注释可以用于在try-with-resources语句中声明的变量,这是根据其语法允许的.语言规范(Java 7)的第14.20.3节内容如下:

TryWithResourcesStatement:
    tryResourceSpecification Block Catches opt最后选择

ResourceSpecification:
    (资源;选择 )

资源:
    资源;资源

资源:
    VariableModifiers opt类型VariableDeclaratorId =表达式

而VariableModifiers扩展为(第14.4节),

VariableModifiers:
    VariableModifier
    VariableModifiers VariableModifier

VariableModifier:
    Annotation之一 final

你去:VariableModifier可以有注释.嗯,这基本上意味着,我们可以这样写:

try( @SomeAnnotation SomeType obj = createSomeType() ) { 
  //some code
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何以及什么样的注释可以用于资源尝试并实现什么样的行为?任何创新的想法?有人用过它们吗?

java annotations java-7 java-8 try-with-resources

20
推荐指数
2
解决办法
1001
查看次数