根据java -version,这就是我的Ubuntu Java环境:

java version "1.7.0_51"
OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-0ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)


我的javac -version是:

   javac 1.6.0_30


如何更改我的javac版本?感谢@SotiriosDelimanolis的提示。 ;)(如果您正在阅读此书,并且遇到相同的问题,请阅读评论。我链接到描述如何在ubuntu上执行此操作的页面)。

我正在尝试运行以下程序:

 import java.util.*;

   class Separate {

    public static void main(String[] args) {

     String text = "<head>first program</head> <body>hello world</body>";
     Set<String> words = new TreeSet<>(); //1 Compiler error
     try(Scanner tokenizingScanner = new Scanner(text)) { //2 Compiler Error
      tokenizingScanner.useDelimeter("\\W");
      while(tokenizingScanner.hasNext()) {
            String word = tokenizingScanner.next();
            if(!word.trim().equals("")) {
                    words.add(word);
            }
      } //end while
     } //end try

            for(String word: words) {
                    System.out.print(word + " ");
            } //end for

    }


我在尝试编译时收到以下错误:

 Separate.java:8: illegal start of type
 Set<String> words = new TreeSet<>();
                                 ^
 Separate.java:9: '{' expected
 try(Scanner tokenizingScanner = new Scanner(text)) {
    ^
 Separate.java:9: ')' expected
 try(Scanner tokenizingScanner = new Scanner(text)) {
            ^
 Separate.java:9: ';' expected
 try(Scanner tokenizingScanner = new Scanner(text)) {
                                                  ^
 Separate.java:9: 'try' without 'catch' or 'finally'
 try(Scanner tokenizingScanner = new Scanner(text)) {
 ^
  Separate.java:24: reached end of file while parsing
  }
  ^
  6 errors


这些错误似乎不应该是错误。第一个错误表明,在Java 7中发现的菱形符号不正确,或者语法正确。该错误在上面的注释中显示为1。

在try块中创建Scanner对象产生的其他错误是尝试使用资源,这也是Java 7的功能。此行在源代码中上面用2标记。

有人知道我在想什么吗?

最佳答案

听起来您的代码未在JDK 7下编译。检查编译器的版本(如Sotirios所述)

关于java - Java 7功能无法在Java版本“1.7.0_51”的ubuntu上使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23098721/

10-12 01:19
查看更多