使用javac编译java时忽略未解析的符号

时间:2016-03-08 10:38:57

标签: java javac

我在STS和it reports missing class中使用Google插件。我决定快速而肮脏地下载该类,编译它并将其放入插件文件夹或jar文件中。

课程在这里:Java2HTMLEntityReader.java

当我编译时,我当然会遇到一些错误:

Java2HTMLEntityReader.java:19: error: package org.eclipse.jdt.internal.compiler.parser does not exist
import org.eclipse.jdt.internal.compiler.parser.*;
^
Java2HTMLEntityReader.java:28: error: cannot find symbol
public class Java2HTMLEntityReader extends SubstitutionTextReader {
                                           ^
  symbol: class SubstitutionTextReader
Java2HTMLEntityReader.java:58: error: cannot find symbol
                setSkipWhitespace(false);
                ^
  symbol:   method setSkipWhitespace(boolean)
  location: class Java2HTMLEntityReader
Java2HTMLEntityReader.java:69: error: cannot find symbol
                        c = nextChar();
                            ^
  symbol:   method nextChar()
  location: class Java2HTMLEntityReader
Java2HTMLEntityReader.java:105: error: cannot find symbol
                } else if (!ScannerHelper.isWhitespace((char) c)) {
                            ^
  symbol:   variable ScannerHelper
  location: class Java2HTMLEntityReader
Note: Java2HTMLEntityReader.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
5 errors

那是因为我没有将java编译器引用到包中。我并不打算这样做!我想用这些错误编译它,我认为当我把它放在正确的类路径上时它会起作用。

2 个答案:

答案 0 :(得分:0)

如果您使用Eclipse编译器来编译该类,则可以请求创建.class文件,尽管编译错误。在命令行上,使用选项-proceedOnError完成此操作。据我所知,javac没有这样的选择。

请注意,API位置中的未解析类型(超类型,方法签名)可能会导致生成的类文件无效。

我真的没有看到黑客这样一个存根.class文件进行编译的充分理由。如果在运行时有相应的jar文件,那么在编译期间你也应该使用相同的jar。

答案 1 :(得分:-1)

成功编译意味着源代码中不应有错误。

如果您的代码包含编译错误,则无法编译,也不会生成.class文件