使用新机器后语法错误

时间:2016-02-10 08:13:03

标签: java jboss syntax-error

我已经将项目导入到我的新机器(到eclipse),它甚至抛出了88个错误,即使在之前的机器上也运行良好。以下是错误类型:

MINUTES cannot be resolved or is not a field 
Syntax error 
Method not applicable to arguments
isEmpty() undefined

当我检查它时,所有语法都很好等。

有人有过类似的问题吗?

这里引发异常的代码(MINUTES无法解析或不是字段)

try {
        TimeUnit.MINUTES.sleep(Config.DOCS_CHECK_INTERVAL);
    } catch (InterruptedException e) {
        log.error("Exception", e);
    } 

进口:

import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.security.cert.X509Certificate;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.TimeUnit;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import com.ikubasienki.core.Config;

2 个答案:

答案 0 :(得分:2)

您的所有错误都表明您使用的是过时的Java版本。例如,在Java 5中,没有TimeUnit.MINUTEShttps://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/TimeUnit.html。它已在Java 6中添加。

假设您在isEmpty()对象上调用String,情况也是如此:{6}中添加了String.isEmpty()https://docs.oracle.com/javase/6/docs/api/java/lang/String.html#isEmpty()因此您将得到一个使用Java 5构建项目时出现isEmpty() undefined错误。

请检查" JRE系统库"的设置。您正在使用在Eclipse中构建项目:

JRE System Library

验证为jar文件显示的路径是否与您要使用的java运行时匹配。

如果仍然无效,请在Eclipse中使用类似

的简单类创建一个新项目
package com.example;

public class Simple {
    public static void main(String[] args) {
        System.err.println(System.getProperty("java.version"));
        System.err.println("".isEmpty());
    }
}

然后运行它。输出应该是

1.7.0_80
true

另一个常见错误来源是项目的编译器合规级别设置:

Compiler Compliance Setting

然而,这并不能解释"未定义的符号"错误,因为它只影响语言级别(例如,是否允许enum或泛型)。但它可能会解释您的语法错误。

答案 1 :(得分:0)

确保你在eclipse中的自定义jre指向jre文件夹(如果你使用jde,请确保两次不是jde而不是jde内部的jre !! ) !