我下载了当前版本的Android Studio(最新截至2013年7月4日),我也下载了JDK 7u25。 但是,启动后显示错误:请确保JAVA_HOME指向JDK而不是JRE。 我不知道如何解决这个问题,这不会让我运行IDE。 我将不胜感激任何帮助。
我已经在我的Windows 7机器上安装了JDK 1.7,并安装了JDK 1.8 u20后,我有以下错误: C:\>java -version Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' has value '1.8', but '1.7' is required. Error: could not find java.dll Error: Could not find Java SE Runtime Environment. 我的PATHvariables指向较旧的版本(即1.7)。 这里有什么错,我可以如何使用Java 8与Java 7?
已知使用工具的JDK7编译代码的兼容性问题。 至于http://www.oracle.com/technetwork/java/javase/compatibility-417013.html 版本号为51的类文件使用types检查validation程序进行专门validation,因此这些方法在适当时必须具有StackMapTable属性。 对于版本为50的类文件,如果文件中的堆栈映像丢失或不正确,则热点JVM将(并继续)故障转移到types – 推理validation器。 对于具有版本51(Java SE 7的默认版本)的类文件,不会发生此故障转移行为。 任何修改版本51类文件中的字节码的工具都必须确保将堆栈映射信息更新为与字节码一致以便通过validation。 解决方法是使用-XX:-UseSplitVerifier ,如下所示: http -XX:-UseSplitVerifier 它有多安全? 我猜想甲骨文已经把这个检查的原因。 如果我不使用它,我可能冒着其他一些问题。 什么可能是使用-XX:-UseSplitVerifier后果-XX:-UseSplitVerifier ? 谢谢, 彼得。
我想检查一个Path (在Java 7中引入)是否以特定扩展名结尾。 我尝试了像这样的endsWith()方法: Path path = Paths.get("foo/bar.java") if (path.endsWith(".java")){ //Do stuff } 但是,这似乎不工作,因为path.endsWith(".java")返回false。 看来endsWith()方法只会在最后一个目录分隔符(例如bar.java )之后有一个完全匹配的情况下返回true,这对我来说是不实用的。 那么如何检查Path的文件扩展名?
我记得M. Joshua Bloch在去年的Devoxx上向我们展示了一个符合Java 7标准的(通过项目硬币function引入的)James Bond ASCII艺术。 有谁知道我在哪里可以find它?
我想打包一个maven(多)模块,父POM包括: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> 我使用的是Java 1.7,属性如下所示: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <slf4j.version>1.6.1</slf4j.version> </properties> Maven版本是2.2.1: johannes@luna:~/workspace/treetank/bundles/treetank-core$ mvn -version Apache Maven 2.2.1 (rdebian-6) Java version: 1.7.0 Java home: /usr/lib/jvm/jdk1.7.0/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux" version: "3.0.0-14-generic" arch: "amd64" Family: "unix" 我不知道为什么它不使用Java版本1.7。 当调用mvn package我得到错误(例如使用-source 7或更高来启用菱形运算符)。 你知道为什么使用1.6吗? 有效的POM是: <plugin> […]
我安装了JDK 7和Eclipse 3.6M6 。 然后,我在Eclipse中添加了JRE 7作为新的JRE执行环境,并将编译器的合规性级别设置为Java 7.我可以使用JDK 7附带的javac通过命令行编译以下代码片段。 import java.util.HashMap; import java.util.Map; public class Try { public static void main(String[] args) { Map<Integer, String> map = new HashMap<>(); } } 但是,Eclipse提供了以下错误消息。 types为HashMap的参数数量不正确; 它不能用参数参数化Try.java / TryJava7 / src第7行Java问题 令牌上的语法错误“<”,? 期待这个令牌Try.java / TryJava7 / src第7行Java问题 尽pipe我已经将编译器的合规性级别设置为Java 7,但看起来Eclipse并不理解Java7语法。 Eclipse中可以使用Java 7吗? 以下是.classpath的内容。 <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> […]
我是Android开发新手。 我可以使用在Android中使用JDK 7开发的现有Java代码吗? 这些函数使用xerces dom和xslt以及xpathapi。 目前当我安装Android Eclipse ADT环境时,这些function不能编译。 我也想知道Android设备本身是否支持JRE 6或7?
Java 7引入了java.nio.file.Path作为java.io.File的可能替代品 。 有了File,当我访问一个特定的文件时,我会这样做: File parent = new File("c:\\tmp"); File child = new File(parent, "child"); // this accesses c:\tmp\child 有什么办法做到这一点与path? 我认为这将工作: Path parent = Paths.get("c:\\tmp"); Path child = Paths.get(parent.toString(), "child"); 但是调用parent.toString()看起来很丑。 有没有更好的办法?
class Test { public static void main(String…args) { String s1 = "Good"; s1 = s1 + "morning"; System.out.println(s1.intern()); String s2 = "Goodmorning"; if (s1 == s2) { System.out.println("both are equal"); } } } 此代码在Java 6和Java 7中产生不同的输出。在Java 6中, s1==s2条件返回false而在Java 7中, s1==s2返回true 。 为什么? 为什么这个程序在Java 6和Java 7中产生不同的输出?