私の Java プロジェクトには、次のコード行があります。
CharMatcher.JAVA_LETTER_OR_DIGIT.matchesAnyOf("string");
この行は、Eclipse (Windows、Guava 14.0.1、Java 1.6.0_22-b04) で完全に機能します。統合 VM (debian、Guava 14.0.1 Java 1.6.0_22-b04) でコンパイルすると、次のエラーが発生します。
[javac] /opt/quantis/src/Quantis_EJB/ejbModule/internals/QtsSessionManagerBean.java:298: cannot find symbol
[javac] symbol : method matchesAnyOf(java.lang.String)
[javac] location: class com.google.common.base.CharMatcher
[javac] CharMatcher.JAVA_LETTER_OR_DIGIT.matchesAnyOf("string");
guava 14 機能を必要とする他の行はうまく機能するため、これはクラスパスの問題ではありません。次の行はエラーを生成しません。
CharMatcher.JAVA_LETTER_OR_DIGIT.matchesNoneOf("string");
Hashing.sha512().newHasher().putString("string");
他のシンボルではなく、このシンボルだけが解決されない理由について何か考えはありますか? Linux JDK の特定のバグ? クラスパス内の他の潜在的な jar と競合していますか (他にも多くの依存関係があります)?