我刚刚安装了jre7,我很惊讶地看到我的默认语言环境现在是en_US.有了jre6,它就是de_CH.
与jre7有什么不同?默认语言环境不再是操作系统之一吗?(顺便说一句,我使用的是Windows7)
谢谢你的回答.
编辑:我已经看到Category.FORMAT的Locale 是"旧的"(de_CH).Category.DISPLAY的Locale 采用操作系统语言的语言(在Windows中,这是在控制面板>区域和语言>键盘和语言>显示语言中完成的)和来自...的contry?
似乎不同的是属性" user.country ".使用Java6,我得到"CH",而使用Java7,我得到"US".
我在内部类中有一个私有方法,它是私有的我想使用SafeVarargs注释.但是,我需要有静态或最终方法.为什么私有方法也必须是最终的?这不是多余的吗?
我刚才意识到Java JDK 1.7下的AWT/Swing(从JDK 7u15开始)不支持Apple Macbook Pros上的Retina显示.例如,Netbeans几乎无法忍受在Retina显示器上使用JDK 1.7运行超过几分钟.
这已经有所解决的问题StackExchange 这里,和引用一个具体的职位:
Apple的Java 6 JRE将支持HiDPI,但Oracle Java 7 JRE目前不支持它.它在Java 8的最新开发版本下也无法运行.在Retinia MacBook上,Swing和JavaFX应用程序模糊不清.这就是IntelliJ仍在Java 6下运行的原因.
我的问题比上述线程的OP所要求的更具体.
我的雇主不到一个月就在其所有应用程序中使用Swing.出于几个原因,我们有兴趣从Java 6迁移到Java 7.在过去的几天里,另一个开发人员(在Windows上)将我们的平台移到Java 7.当我运行视网膜Macbook Pro时,我注意到了当我拉出代码的最新稳定分支时的问题.
我是Java的新手,在社区中有不到一年的经验,因此我的问题是:Java社区是否会对此问题做出相应的响应,或者在Swing之前是否会出现大量延迟(几个月到一年或更长时间)在Java 7中与Apple Retina显示器兼容吗?
我非常了解JDK 1.5.众所周知,除了新的API(例如AtomicInteger)之外,还有一些主要的语言变化,例如提供对泛型的支持,添加枚举,私有自动装箱和自动取消装箱等等.
我想找到一些资源具有在JDK 1.6和1.7的新功能(最好简短描述大的新功能我喜欢阅读完整的解释).至于API的变化,只有主要的变化是可以接受的,并且对新的变更进行简短的审查(例如,如果我记得写有从控制台读取字符的新方法).就功能而言,我想找到完整的列表(对象分配的这种变化,现在JVM实际上可以在堆栈上创建对象以进行优化,例如,但我不知道细节).
对于JDK 1.6 核心Java技术特性和Java™SE 6与J2SE 5.0的兼容性.对于JDK 1.7 使用Java SE 7异常更改,但它是不完整的列表.
由于公共Java 6 SE JRE越来越接近它的EOL(11月12日),我正在考虑将我的项目从Java 6移植到Java 7.如果Apple提供Java 7 JRE,这将不是什么大问题.对于Mac OS X.但由于Apple不愿意这样做,我仍然需要支持只拥有Java 6 JRE的用户.
有没有办法用Java 7 javac编译Java 6兼容的二进制文件(类文件)?当然,我知道在这样做时我不能使用新的Java 7功能.
谢谢你的期待!
我已经将Java更新为版本"1.7.0_09-icedtea"(以前它是1.6)并获得以下消息:
Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate be
an class [org.springframework.aop.aspectj.AspectJPointcutAdvisor]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: error the
@annotation pointcut expression is only supported at Java 5 compliance level or above
Run Code Online (Sandbox Code Playgroud)
应用程序已使用java 1.6编译,编译器合规性级别也设置为1.6.我正在使用spring 3.1.0
有没有人能够在Java 7下使用aspectj?
import java.io.*;
import java.nio.file.*;
public class Tmp {
public static void main(String [] args) throws IOException {
int count = 0;
Path path = Paths.get("C:\\tmp\\");
WatchService ws = null;
try {
ws = FileSystems.getDefault().newWatchService();
path.register(ws, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE,
StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.OVERFLOW);
} catch (IOException ioe) {
ioe.printStackTrace();
}
while(true) {
WatchKey key = null;
try {
key = ws.take();
} catch(InterruptedException ie) {
ie.printStackTrace();
}
for(WatchEvent<?> event: key.pollEvents()) {
switch(event.kind().name()) {
case "OVERFLOW":
System.out.println(++count + ": OVERFLOW");
break;
case "ENTRY_MODIFY":
System.out.println(++count + …Run Code Online (Sandbox Code Playgroud) 我对JDK7中所有这些新的File I/O类感到困惑.
让我们说,我有一个,Path并希望重命名该文件,它代表.
如何再次Path预期时,如何指定新名称?
Path p = /* path to /home/me/file123 */;
Path name = p.getName(); /* gives me file123 */
name.moveTo(/* what now? */); /* how to rename file123 to file456? */
Run Code Online (Sandbox Code Playgroud)
注意:为什么我需要JDK7?处理符号链接!
问题是:我必须使用文件,在运行时已知名称和位置.所以,我需要的是一种安全的方法(没有特殊的副作用)来创建一个新名称-Path一些旧名称Path.
Path newName(Path oldName, String newNameString){
/* magic */
}
Run Code Online (Sandbox Code Playgroud) 最近从Oracle发布了OSX JDK 7 ea.如何运行Eclipse Indigo?
我收到以下错误信息:
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/JDK 1.7.0 Developer Preview.jdk/Contents/Home
$ java -version
openjdk version "1.7.0-ea"
OpenJDK Runtime Environment (build 1.7.0-ea-b211)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)
$ /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse
JavaVM: requested Java version ((null)) not available. Using Java at "" instead.
JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib
JavaVM FATAL: Failed to load the jvm library.
Run Code Online (Sandbox Code Playgroud) 我正在为一个项目尝试Java 7并从这种注释处理器(Bindgen和Hibernate JPA modelgen)获得警告:
warning: Supported source version 'RELEASE_6' from annotation processor 'org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor' less than -source '1.7'
Run Code Online (Sandbox Code Playgroud)
这是由@SupportedSourceVersion(SourceVersion.RELEASE_6)注释处理器类上的注释引起的.由于它们是使用Java 6编译的,因此SourceVersion可用的最高值是RELEASE_6.Java 7版本SourceVersion介绍RELEASE_7.
我的问题:注释处理器如何处理前向兼容性?是否必须有单独的jdk6和jdk7二进制版本?我在这里不理解其他什么吗?
我只发现了有关此问题的以下信息:
@Override
public SourceVersion getSupportedSourceVersion() {
return SourceVersion.latest();
}
Run Code Online (Sandbox Code Playgroud)
评论员建议支持最新源版本的Oracle博客