【发布时间】:2014-04-16 03:59:49
【问题描述】:
根据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 的提示。 ;)(如果您正在阅读这篇文章并且遇到同样的问题,请阅读 cmets。我链接到描述如何在 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 中发现的菱形符号语法不正确,或者在正确的情况下不正确。此错误在 cmets 中显示为 1。
在 try 块中创建 Scanner 对象产生的其他错误是对资源的尝试,这也是 Java 7 的一个特性。此行在源码中上面标有2。
有人知道我错过了什么吗?
【问题讨论】:
-
现在做
javac -version。 -
另外,它是
useDelimiter。 -
你是从任何 IDE 运行它还是直接用 javac 编译?
-
@JigarJoshi 直接从 shell 编译
-
我更新了我的问题,谢谢@SotiriosDelimanolis :D 你知道我在使用
javac时如何更改运行的java 版本吗?
标签: java ubuntu java-7 diamond-operator