javac cannot find class in rt.jar?
843810Dec 17 2008 — edited Jan 6 2009I have the following file
Test1.java
---------------------------
import sun.util.resources.LocaleData;
public class Test1
{
}
--------------------------
When I tried to compile it, this is what I got:
$ javac -verbose Test1.java
[parsing started Test1.java]
[parsing completed 19ms]
[search path for source files: .]
[search path for class files: /usr/java/jdk1.6.0_06/jre/lib/resources.jar,/usr/java/jdk1.6.0_06/jre/lib/rt.jar,/usr/java/jdk1.6.0_06/jre/lib/sunrsasign.jar,/usr/java/jdk1.6.0_06/jre/lib/jsse.jar,/usr/java/jdk1.6.0_06/jre/lib/jce.jar,/usr/java/jdk1.6.0_06/jre/lib/charsets.jar,/usr/java/jdk1.6.0_06/jre/classes,/usr/java/jdk1.6.0_06/jre/lib/ext/localedata.jar,/usr/java/jdk1.6.0_06/jre/lib/ext/sunpkcs11.jar,/usr/java/jdk1.6.0_06/jre/lib/ext/sunjce_provider.jar,/usr/java/jdk1.6.0_06/jre/lib/ext/dnsns.jar,.]
Test1.java:1: cannot find symbol
symbol : class LocaleData
location: package sun.util.resources
import sun.util.resources.LocaleData;
^
[loading java/lang/Object.class(java/lang:Object.class)]
[loading java/lang/String.class(java/lang:String.class)]
[checking Test1]
[loading java/lang/System.class(java/lang:System.class)]
[loading java/io/PrintStream.class(java/io:PrintStream.class)]
[loading java/io/FilterOutputStream.class(java/io:FilterOutputStream.class)]
[loading java/io/OutputStream.class(java/io:OutputStream.class)]
[total 653ms]
1 error
However, I can see the sun.util.resources.LocaleData class is in the /usr/java/jdk1.6.0_06/jre/lib/rt.jar file, while is listed in the "search path for class files".
$ jar tf /usr/java/jdk1.6.0_06/jre/lib/rt.jar | grep LocaleData.class
sun/util/resources/LocaleData.class
So, what am I missing here? What did javac failed to find this symbol? Thanks...