【问题标题】:Why is maven looking for an artifact in the lib directory other than the one I'm running it with?为什么 maven 在 lib 目录中寻找一个工件,而不是我正在运行它的那个?
【发布时间】:2014-03-11 22:39:36
【问题描述】:

我正在尝试在运行 Ubunto 13.10 的机器上使用 JDK 1.6.0_45 在我的 maven 项目上运行全新安装,但它失败并出现错误:

“在指定路径 /usr/lib/jvm/jdk1.6.0_41/jre/lib/plugin.jar 找不到工件 sun.plugin:plugin:jar:1.6”

由于某种原因,它试图在错误版本的 JDK 中查找插件,它正在查找更新 41 目录(/usr/lib/jvm/jdk1.6.0_41),但它没有'不存在,而不是更新 45 目录。我已经在另一台使用 jdk1.6.0_45 运行 Windows 的机器上成功运行了全新安装

我对我的项目进行了文件搜索,但没有找到任何与 jdk1.6.0_41

匹配的内容

【问题讨论】:

  • 你在那个机器上搞砸了java安装
  • 我不明白这是怎么发生的。我从 oracle 站点下载了 .bin 文件,并通过终端在 use/lib/jvm/ 目录中执行它。我做错了什么吗?我是 linux 新手。

标签: java linux maven jvm ubuntu-13.10


【解决方案1】:

您可以在~/.mavenrc 中添加以下条目;

export JAVA_HOME=/path/to/right/jdk

或通过将JAVA_HOME 添加到~/.bashrc 来全局描述您系统上的JAVA_HOME(这只会影响您的用户)

【讨论】:

  • 它已经在使用正确版本的 jdk 执行,我可以在控制台中看到
  • mvn -v的输出是什么
  • Apache Maven 3.0.4 Maven 主页:/usr/share/maven Java 版本:1.6.0_45,供应商:Sun Microsystems Inc. Java 主页:/usr/lib/jvm/jdk1.6.0_45/ jre 默认语言环境:en_ZA,平台编码:UTF-8 操作系统名称:“linux”,版本:“3.11.0-15-generic”,arch:“amd64”,家族:“unix”
  • 好的,还剩一点。检查你的 pom.xml,也许你在 pom.xml 中指定了 jdk 版本
  • 您只指定一个主要版本,而不是一个次要版本。所以这对这个问题没有影响,我同意这有点奇怪。此时我可能会在 jdk1.6.0_41 上进行 grep 搜索,看看它是否在某个隐藏的配置文件中被引用。
猜你喜欢
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
  • 2019-12-23
  • 1970-01-01
  • 2016-08-24
  • 2012-09-13
相关资源
最近更新 更多