私はGit Bash(64ビット版)を数ヶ月使用していましたが、突然それが動作を停止し、これを生成しています任意のMavenのコマンドのエラー:私はこの1つを含むように多くの質問を、検討しているGit for Windows(64ビット版)のMaven classworlds.launcher.Launcherエラー
[email protected] MINGW64 ~ (master *)
$ mvn -v
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
:Maven error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcherが、私の問題を解決していません。
2.12からWindows(2.14.2.windows.2)の最新版にアップグレードしましたが、問題は残ります。
私のMavenのインストールはCである:\ apacheの-のmaven-3.5.0 \ binに、私のPATH変数である:私もJAVA_HOMEが正しく設定されている
[email protected] MINGW64 ~ (master *)
$ echo $PATH
...:/c/jdk1.7.0_79/bin:/c/apache-maven-3.5.0/bin:...
:
[email protected] MINGW64 ~ (master *)
$ echo $JAVA_HOME
C:\jdk1.7.0_79
私は、追加/ MAVEN_HOMEを削除しようとしたが、それは、Apache Mavenの起動スクリプトで検出されていないようです(C:\ apacheの-のmaven-3.5.0 \ビン\のMVN):
[email protected] MINGW64 ~ (master *)
$ echo $MAVEN_HOME
c:\apache-maven-3.5.0
Apache Mavenスタートアップスクリプトに入り、$ {MAVEN_HOME}のインスタンスをC:\ apache-maven-3.5.0に置き換えると、Launcherクラスが見つかったようで正しく実行されます。このような
編集:
CLASSWORLDS_JAR=`echo "${MAVEN_HOME}"/boot/plexus-classworlds-*.jar`
to
CLASSWORLDS_JAR=`echo /c/apache-maven-3.5.0/boot/plexus-classworlds-*.jar`
その後、生産:
[email protected] MINGW64 ~ (master *)
$ mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)
Maven home: C:\apache-maven-3.5.0
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: C:\jdk1.7.0_79\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
これは洗練回避策で、むしろ適切な解決策を見つけるだろう。どのような環境や設定を変更すれば、Mavenはパスをハードコーディングせずに実行できますか? VonC's answerため
ステップ/結果:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\windows\system32>set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\windows\system32>set GH=C:\Program Files\Git
C:\windows\system32>set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
C:\windows\system32>set PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PATH%
C:\windows\system32>echo %PATH%
C:\jdk1.7.0_79\bin;c:\apache-maven-3.5.0\bin;C:\Program Files\Git\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\windows\system32>echo %M2_HOME%
C:\apache-maven-3.5.0
C:\windows\system32>mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)
Maven home: c:\apache-maven-3.5.0\bin\..
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: C:\jdk1.7.0_79\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
C:\Windows\System32>bash
[email protected] MINGW64 /c/Windows/System32
$ mvn -v
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
[email protected] MINGW64 /c/Windows/System32
$ echo $M2_HOME
C:\apache-maven-3.5.0
[email protected] MINGW64 /c/Windows/System32
$ echo $MAVEN_HOME
c:\apache-maven-3.5.0
さらにデバッグした後、私は私の問題は、MAVEN_HOME変数は、コードのこのセクションではクリアされますMaven error in MINGW Git bash: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher、同じように見えるが実現:
# For MinGW, ensure paths are in Unix format before anything is touched
if $mingw ; then
[ -n "$MAVEN_HOME" ] &&
MAVEN_HOME=`(cd "$MAVEN_HOME"; pwd)`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`(cd "$JAVA_HOME"; pwd)`
# TODO classpath?
fi
違反行を実行すると、bashのセッションでは、私はWindows用の最新のGitで動作を再現することができます
[email protected] MINGW64 ~ (master *)
$ git --version
git version 2.14.2.windows.3
[email protected] MINGW64 ~ (master *)
$ echo $MAVEN_HOME
c:\apache-maven-3.5.0
[email protected] MINGW64 ~ (master *)
$ [[ -n "$MAVEN_HOME" ]] && MAVEN_HOME=`(cd "$MAVEN_HOME"; pwd)`
[email protected]ypc MINGW64 ~ (master *)
$ echo $MAVEN_HOME
[email protected] MINGW64 ~ (master *)
$
これは私が直接コマンドを実行するときに私が得るものです - それは、現在のディレクトリを返し、私が期待するようMAVEN_HOMEありません。コマンドがサブシェルで実行されるために起こると仮定しますか?
[email protected] MINGW64 ~ (master *)
$ echo `(cd "$MAVEN_HOME"; pwd)`
/c/home
[email protected] MINGW64 ~ (master *)
$ `(cd "$MAVEN_HOME"; pwd)`
bash: /c/home: Is a directory
JAVA_HOMEとMAVEN_HOMEのconigurationとgit bashのバージョンを詳細に共有できますか? – nullpointer
@nullpointerありがとうございました - 質問に組み込まれている、あなたがもっと情報が必要かどうか私に教えてください。 – mcknz