使用 javac 编译 java 时忽略未解析的符号
Ignore unresolved symbols when compiling java with javac
我在 STS 和 it reports missing class 中使用 Google 插件。我决定采用一种快速而肮脏的方式下载 class,编译它并将其放入插件文件夹或 jar 文件中。
class 在这里: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 编译器引用。我不打算!我想用这些错误编译它,我假设当我把它放在正确的 class 路径上时它会工作。
编译成功意味着源代码应该没有错误。
如果您的代码包含编译错误,它将无法编译并且不会生成 .class
文件
如果您使用 Eclipse 编译器编译 class,您可以请求创建 .class
文件,尽管存在编译错误。在命令行上,这是使用选项 -proceedOnError
完成的。据我所知,javac 没有这样的选项。
请注意,API 位置中未解析的类型(超类型、方法签名)可能导致生成的 class 文件无用。
我真的没有看到破解这样一个存根 .class 文件进行编译的充分理由。如果您在运行时有相应的 jar 文件可用,那么您应该在编译期间也使用相同的 jar。
我在 STS 和 it reports missing class 中使用 Google 插件。我决定采用一种快速而肮脏的方式下载 class,编译它并将其放入插件文件夹或 jar 文件中。
class 在这里: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 编译器引用。我不打算!我想用这些错误编译它,我假设当我把它放在正确的 class 路径上时它会工作。
编译成功意味着源代码应该没有错误。
如果您的代码包含编译错误,它将无法编译并且不会生成 .class
文件
如果您使用 Eclipse 编译器编译 class,您可以请求创建 .class
文件,尽管存在编译错误。在命令行上,这是使用选项 -proceedOnError
完成的。据我所知,javac 没有这样的选项。
请注意,API 位置中未解析的类型(超类型、方法签名)可能导致生成的 class 文件无用。
我真的没有看到破解这样一个存根 .class 文件进行编译的充分理由。如果您在运行时有相应的 jar 文件可用,那么您应该在编译期间也使用相同的 jar。