java - 如何强制javac使用某个jar文件?

标签 java ubuntu jar classpath

在我的公司计算机中,我们有 $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/

相关文章:

java - junit assume command - 我可以将它放在设置方法中以忽略所有测试吗

java - 从文本文件中读取错误字符

linux - mpm-itk 安装 -- make : missing: Command not found on ubuntu

linux - 更改 chown 主文件夹后无法连接到 SSH 服务器 Google Compute Engine

apache-spark - 在 Spark 2.0.0 中,我们是否还需要制作一个 fat jar 子来提交作业?

java - java中将图像旋转指定角度

java - 从使用反射获得的 RecyclerView 调用方法

java - Tomcat 无法在 Ubuntu 中从 IDE (Eclipse Luna WTP & IntelliJ IDEA) 启动

groovy - 如何将多个jar添加到groovyConole/groovysh的类路径中?

java - 读取Jar文件中包含的类文件