maven編譯時找不到com.sun包的原因與解決方法
阿新 • • 發佈:2019-02-16
maven編譯時找不到com.sun包.
原因:javac uses a special symbol table that does not include all Sun-proprietary classes. When javac is compiling code it doesn't link against rt.jar
by default. Instead it uses special symbol file lib/ct.sym
with class stubs.
大意是:javac在編譯時,並不引用 rt.jar,用的是一個特別的symbol table(lib/ct.sym
解決方法:使用 -XDignore.symbol.file,這樣javac編譯時就會引用rt.jar:
javac -XDignore.symbol.file
maven的pom.xml中增加配置:
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgs> <arg>-XDignore.symbol.file</arg> </compilerArgs> <fork>true</fork> </configuration> ...