Ich habe hier eine Lösung gefunden: Die bash-Shell führt keine .bat-Dateien aus
Lauf
cmd.exe '/c filename.batorexe'
im entsprechenden Verzeichnis (Sie können aus irgendeinem Grund keinen Unterordner erstellen).
Ich habe heute morgen ec2-Befehlszeilentools unter Windows installiert. Wenn ich versuche, einen Befehl ec2-describe-instances
in der Git-Bash auszuführen, bekomme ich folgende Ausgabe:
Exception in thread "main" java.lang.NoClassDefFoundError: com/amazon/aes/webservices/client/cmd/DescribeInstances Caused by: java.lang.ClassNotFoundException: com.amazon.aes.webservices.client.cmd.DescribeInstances at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: com.amazon.aes.webservices.client.cmd.DescribeInstances. Program will exit.
Aber wenn ich nur Standard erschließe cmd
, funktioniert alles gut. Ich möchte meine Git Bash für alles verwenden können. Mir ist aufgefallen, dass der Git-bash nur die Eingabeaufforderung cmd verwendet, jedoch mit zusätzlichen Optionen. Die Abkürzung für die Git-Bash hat folgendes im Ziel:
C: \ Windows \ System32 \ cmd.exe / c "" C: \ Programme \ Git \ bin \ sh.exe "--login -i"
Wie kann ich ec2-Kommandozeilen-Tools in der git bash ausführen lassen?
Ich habe hier eine Lösung gefunden: Die bash-Shell führt keine .bat-Dateien aus
Lauf
cmd.exe '/c filename.batorexe'
im entsprechenden Verzeichnis (Sie können aus irgendeinem Grund keinen Unterordner erstellen).
Der Unterschied ist, dass Git Bash (MINGW) einige Umgebungsvariablen nicht vom Windows-Pfadformat in das * nix-Pfadformat konvertiert. Es führt die Konvertierung für PATH durch, aber nicht EC2_HOME oder CLASSPATH.
Ich hatte den gleichen Fehler, und nachdem diese 2 Umgebungsvariablen in Git Bash gesetzt wurden, funktionierte die ec2-Befehlszeile hervorragend:
export CLASSPATH = "/ c / Programme / ec2-api-tools-1.6.6.3 / lib" export EC2_HOME = "/ c / Programme / ec2-api-tools-1.6.6.3"
Sie können das zu .bash_profile hinzufügen, um es automatisch festzulegen, wenn Sie Git Bash starten (anstatt die Windows-Umgebungsvariablen zu ändern). Auf diese Weise wird es sowohl in Git Bash als auch in der Windows-Befehlszeile funktionieren.
Selbst in git-bash unter Windows können Sie in den CMD-Modus wechseln, indem Sie 'cmd' eingeben und dann die Befehle auf normale cmd-Weise verwenden.
Sie könnten es sogar versuchen ... das würde Ihnen das Öffnen verschiedener Konsolen für unterschiedliche Aufgaben ersparen.
Ihr Problem ist die Klasse, die nicht gefunden wird. Anscheinend hat Ihre Bash-Shell keinen Zugriff auf dieselbe Umgebung wie die Cmd-Shell. Richten Sie die richtige Umgebung ein und die Bash-Shell sollte funktionieren.