【问题标题】:Maven error in MINGW Git bash: Could not find or load main class org.codehaus.plexus.classworlds.launcher.LauncherMINGW Git bash 中的 Maven 错误:无法找到或加载主类 org.codehaus.plexus.classworlds.launcher.Launcher
【发布时间】:2018-01-05 13:30:03
【问题描述】:

我知道这个问题已经在几个问题中讨论过,但没有答案能解决我的具体问题。

我已经安装了 Git bash 和 Maven,我正在尝试使用 Git bash 执行 Maven。它因上述错误而中止。

我的系统环境:

Windows 7
Git 2.13.3
Maven 3.5.0

所需的用户变量:

HOME=%HOMEPATH%
M3_HOME=%MAVEN_HOME%
MAVEN_HOME=path-with-no-blanks
Path=%MAVEN_HOME%\bin

Maven 在 Windows 命令提示符和 Cygwin 上运行良好。只有基于 MINGW 的 Git bash 失败。

我检查了mvn 下的 bash 脚本:C:\path\to\maven\bin

通过设置日志输出并检查MAVEN_HOME 值何时丢失,我发现它已被这些语句清除(甚至JAVA_HOME):

# For MinGW, ensure paths are in Unix format before anything is touched !!!HERE MAVEN_HOME value is getting lost!!!
if $mingw ; then
  [ -n "$MAVEN_HOME" ] &&
    MAVEN_HOME=`(cd "$MAVEN_HOME"; pwd)`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`(cd "$JAVA_HOME"; pwd)`
  # TODO classpath?
fi

在另一台 Windows 机器(不同版本的 Maven 和 Git)上,相同的行有点不同:

M2_HOME="`(cd "$MAVEN_HOME"; pwd)`"

代替:

MAVEN_HOME=`(cd "$MAVEN_HOME"; pwd)`

首先,我认为这是由于引号字符的类型。但是工作中的 Windows 机器甚至可以使用我失败的 Windows 机器上的新脚本运行良好。我还尝试安装旧的 Git 或旧的 Maven - 没有任何帮助。

为什么提到的 bash 脚本行会清除 MAVEN_HOME 变量?

【问题讨论】:

  • 你解决过这个问题吗?我在stackoverflow.com/questions/46718502/… 遇到了同样的问题。您使用的是 32 位还是 64 位 Git?
  • 不幸的是,我没有。我的解决方法是将Maven的bash脚本中的路径修改为绝对路径。一个问题:你使用 Comodo 吗?自从我升级到最新的主要版本后,我遇到了问题。但我无法解释这是否只是巧合,或者它是否真的与这个问题有关。我正在使用 64 位 Git。
  • 谢谢——我没有使用 Comodo,但 Maven 和 Git Bash 直到最近也一直在为我工作。所以可能有一些 Git Bash 外部的东西发生了变化。我已经做了同样的解决方法,所以可能会继续这样做。如果我发现任何新内容,会通知您。

标签: windows bash maven mingw


【解决方案1】:

在 Windows 7 机器上遇到完全相同的问题。一夜之间发生,git/mingw64、maven 或 java 中没有版本更改。

您可以考虑的第一个测试是 PATH 问题(OP 实际上提到了不正确的 Path=%MAVEN_HOME%\bin

在 CMD 会话中使用 simplified PATH 进行测试(因此仅限于该会话)

set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%MAVEN_HOME%\bin;%PATH%
set PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH%

如果您想在 bash 会话中使用类似的 $PATH,您可以在 .bashrc 中调整相同的想法,方法是在 CMD 中使用简化的 PATH 键入 bash

然后;在这种情况下,您可以再次检查问题是否仍然存在。

【讨论】:

    【解决方案2】:

    我有一段时间遇到完全相同的错误,直到我意识到这是由我的防病毒软件 (Comodo) 引起的。如果我退出/禁用 Comodo,Git bash 将无法正常工作甚至

    因此,如果您有 Comodo,请尝试按照以下步骤修复错误(如果没有,则可以尝试使用您使用的任何防病毒/防火墙执行类似的操作):

    1. Comodo->设置->文件分级->添加文件夹(Git文件夹)。这最终添加了 5000 多个受信任的文件(但它有助于解决问题)。

    2. Comodo->Settings->Advanced Protection->Miscellaneous-> 并找到复选标记“Don't detect shellcode injections in...”。我将整个 Git 文件夹添加到 shellcode 注入中。

    3. 我在 Comodo->Settings->containment->“Auto-containment”中将 git 文件夹设置为“ignore”

    我将补充一点,我不确定是否需要所有步骤,因此请随意执行它们,看看哪些有帮助。

    【讨论】:

    • @mcknz 如果您没有 Comodo,您的系统上是否有类似的带有自动沙盒功能的反恶意软件解决方案?
    猜你喜欢
    • 2012-06-22
    • 2023-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 2020-08-29
    • 1970-01-01
    相关资源
    最近更新 更多