Wie kann ich den ec2-Befehl in git-bash ausführen lassen?

6838
citizen conn

Ich habe heute morgen ec2-Befehlszeilentools unter Windows installiert. Wenn ich versuche, einen Befehl ec2-describe-instancesin 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?

7

4 Antworten auf die Frage

2
Will Stone

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).

Dies ist zwar eine alternative Problemumgehung, aber nicht das Hauptproblem. EC2-Befehlszeilen-Tools für Windows werden mit der Batchdatei "ec2-description-instance.cmd" sowie der Bash-Datei "ec2-description-instance" geliefert. wisbucky vor 10 Jahren 1
2
wisbucky

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.

0
AbhishekKr

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.

0
Ronny

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.

Wie würden Sie die Umgebung einrichten? Könnte das in Ihrer Antwort enthalten sein? Simon Sheehan vor 12 Jahren 2