在我的公司计算机中,我们有 $JAVA_HOME/jre/lib/ext/opennlp-tools-1.5.3.jar
并且在我的应用程序中我实际上想使用旧版本,例如$DIR/lib/opennlp-tools-1.3.0.jar
。
当我尝试使用 javac -cp $DIR/lib/opennlp-tools-1.3.0.jar MainClass.java
进行编译时,显然 javac
仍然使用opennlp-tools-1.5.3.jar
,即$JAVA_HOME
中的版本(我从产生的不兼容性中知道这一点,并且删除了$JAVA_HOME
使其运行顺利)
问题
有没有办法告诉javac
使用我指定的jar文件?
正如我上面所说,删除 $JAVA_HOME
中的 jar 文件是可行的,但它可能会破坏其他应用程序,因此我希望对文件结构进行最小程度的更改。有办法实现吗?
最佳答案
您可以尝试将此选项传递给 javac(除了 -cp 之外):
-Djava.ext.dirs=$DIR/lib
以避免查看 $JAVA_HOME 中的扩展。看来 -cp 不会覆盖这一点。
关于java - 如何强制javac使用某个jar文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571121/