Tag: java 7

Android Studio需要哪个JDK版本(语言级别)?

我是Android世界和.NET背景的新来者。 我试图安装Android Studio,但是我在Android.com上遇到了开发Android应用程序所需的JDK版本不匹配的问题。 从SDK网页上,它指出需要JDK 6 (在系统需求部分下)。 吉姆·威尔逊(Jim Wilson) 在Pluralsight课程 (从去年5月开始相当新颖)方面坚持认为,使用版本7与Android SDK将产生许多令人头疼的问题,并明确表示只使用JDK 6。 尽pipe在Android工作室页面 (在安装步骤2中),他们解释了如何设置一个环境variables来指示正确的JDK位置。 在这里他们使用JDK 7的path selectStart menu > Computer > System Properties > Advanced System Properties 。 然后打开“ Advanced tab > Environment Variables然后添加一个指向JDK文件夹的新系统variablesJAVA_HOME ,例如C:\Program Files\Java\jdk1.7.0_21 。 我很确定ADT和Eclipse包以及Android Studio包都使用相同的SDK,但是现在我对我需要安装的JDK版本感到困惑。 我的唯一目的是尽可能地避免问题,同时让我的第一步进入Android的发展。 免责声明:我与Pluralsight没有任何关系。 我只是一个正常的用户遵循的课程。

从技术上说,Oracle JDK和Open JDK之间的主要区别是什么?

我一直在使用Open JDK的年龄,最初是为没有问题的小项目。 但是自从我开始玩大玩具,我开始注意到随机/未知的致命错误和崩溃(与x.264编解码器等),这是一个噩梦,直到​​然后得到乘坐系统崩溃+致命的错误,由开放JDK。 在使用Open JDK完全沮丧和厌倦之后,我终于决定切换到Oracle JDK 7.从那时起,我的致命错误/崩溃消失了。 仍然做跟踪,看看是否发生,但从来没有得到这些系统崩溃。 现在我想知道,如果Open JDK只是一个许可证问题,为什么稳定是不可能的呢? 为什么Open JDK会保持错误的存在,在那里有稳定的版本,但声称它的Oracle JDK的克隆(这不是真的),那么从JDK开放JDK和JDK的真正技术上是什么? (只有快速function的可用性?或着重于稳定性/可靠性?)

genericstypes推断不适用于方法链接?

这在Java 7中无法编译: class Map<K,V> { static <K,V> Map<K,V> empty() {return null;} Map<K,V> put(K k, V v) {return null;} V get(K k) {return null;} } class A { static void f(Map<Integer,String> m){} public static void main(String[] args) { f(Map.empty()); } } 它不会推断从Map.empty()返回的Map的具体types: $ javac7 A.java A.java:10: error: method f in class A cannot be applied to […]

Java 7string – 子string的复杂性

在Java 6之前,我们在String上有一个恒定的时间子String 。 在Java 7中,为什么他们决定去复制char数组,并降低到线性时间复杂度 – 当像StringBuilder这样的东西正是为了这个?

Java7试用资源声明的优势

我正在看Java7的新function。 我发现一个是试用资源的声明 。 谁能告诉我究竟是什么意思? 为什么和在哪里我们应该使用它,在哪里我们可以得到这个function的优势? 甚至try声明错过了为我迷惑的块。

Java 7在数字文字中用下划线表示

当我们必须用一个_来分隔数字中的数字时,我不会理解下面这个我不能使用它的情况: 在预期有一串数字的位置(如JDK7指南中所述) 一些例子?

“比较方法违反了它的一般合约!” – TimSort和GridLayout

我做了一个调色板,里面有一个jPanel和一个JLabel数组。 起初它工作得很好,但是后来我把一些其他jLabel从JPanel中join了一些事件。 现在我不断收到这个错误: Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:747) at java.util.TimSort.mergeAt(TimSort.java:483) at java.util.TimSort.mergeCollapse(TimSort.java:410) at java.util.TimSort.sort(TimSort.java:214) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at java.util.Collections.sort(Collections.java:217) at javax.swing.SortingFocusTraversalPolicy.enumerateAndSortCycle(SortingFocusTraversalPolicy.java:136) at javax.swing.SortingFocusTraversalPolicy.getFocusTraversalCycle(SortingFocusTraversalPolicy.java:110) at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(SortingFocusTraversalPolicy.java:435) at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(LayoutFocusTraversalPolicy.java:166) at javax.swing.SortingFocusTraversalPolicy.getDefaultComponent(SortingFocusTraversalPolicy.java:515) at java.awt.FocusTraversalPolicy.getInitialComponent(FocusTraversalPolicy.java:169) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:380) at java.awt.Component.dispatchEventImpl(Component.java:4731) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723) at java.awt.EventQueue.access$200(EventQueue.java:103) at […]

在Mac OS X上安装了Java 7,但terminal仍在使用版本6

我已经安装了从oracle的网站上下载的JDK 7u7。 但安装完毕后,terminal仍然显示java版本6 $java -version java version "1.6.0_35" Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811) Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode) 任何想法为什么Java 7没有显示出来? Ans:好的,问题已经解决了。 这里是答案:我发现我的terminal有一个.bash_profile和Java主variables设置为1.6 export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home" 所以这是每当我打开一个新的terminal窗口导致问题的线路。 简单地删除这条线将解决问题。 您仍需要遵循@aleroot所说的内容,但是如果这不适用于您,请检查.bash_profile(或.bashrc)设置文件,以查看您以前是否导出过任何Java版本。

在这个环境中没有提供编译器。 也许你正在使用JRE而不是JDK?

我在使用m2eclipse在Eclipse中编译项目。 我在Eclipse中设置JDKpath,如下所示: Windows–>preferences–>installed jres–> jdk1.7.xx path 但是这显示错误 [ERROR] COMPILATION ERROR : [INFO] ————————————————————- [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [INFO] 1 error [INFO] ————————————————————- [INFO] ———————————————————————— [INFO] BUILD FAILURE [INFO] ———————————————————————— [INFO] Total time: 1.424s [INFO] Finished at: Tue Oct 29 15:21:01 […]

线程“main”中的exceptionjava.lang.UnsupportedClassVersionError:a(Unsupported major.minor version 51.0)

可能重复: 不受支持的主要.minor版本51.0 我安装了JDK7,一个简单的hello word程序得到编译,但是当我运行这个时,我得到了下面的exception。 Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) 我在命令提示符处检查了java -version ,它显示Java版本1.4.2_03,但是当我尝试从java.com安装新的java版本时,它说我推荐了Java 7版本。