2016-02-10 20 views
-4

我已经将项目导入到新机器上(即日食),它甚至会抛出88个错误,即使它在以前的机器上工作良好。这里的错误类型:使用新机器后语法错误

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

当我检查语法的所有好等

任何人都有类似的问题?

这里的代码抛出一个异常(分钟数不能得到解决或不是场)

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

如果没有看到代码,很难判断是否有什么问题。我还怀疑,鉴于“适用”中的拼写错误,这些错误不是*确切*错误。您可能正在使用不同版本的JRE或语言。请显示[mcve] ... –

+0

看起来您使用错误的Java版本,例如Java 7而不是Java 8. – Landei

+1

你能显示你的导入么? – Jens

回答

2

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

假定您是在String对象调用isEmpty(),也是同样的道理:String.isEmpty()已经在Java 6中添加:https://docs.oracle.com/javase/6/docs/api/java/lang/String.html#isEmpty(),因此你将与建设项目时得到一个isEmpty() undefined错误Java 5的

请检查“JRE系统库”您正在使用的建立在Eclipse项目的设置:

JRE System Library

验证该jar文件显示的路径java的r可查找不时想要使用。

如果仍然没有帮助,在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或泛型)。不过,它可能会解释你的语法错误。

+0

我正在使用java 1.7 –

+0

是的,它返回 –

+0

编译器兼容级别也是1.7 –