如何在 git-bash 中运行 ec2 命令?

如何在 git-bash 中运行 ec2 命令?

今天早上我在 Windows 上安装了 ec2 命令行工具。当我尝试ec2-describe-instances在 git bash 中运行命令时,我得到了以下输出:

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.

但是如果我只打开标准cmd,一切都会正常。我希望能够使用我的 git bash 来做所有事情。我注意到 git bash 只使用 cmd 提示符,但带有额外的选项。git bash 的快捷方式在目标中包含以下内容:

C:\Windows\System32\cmd.exe /c ""C:\Program Files\Git\bin\sh.exe" --login -i"

如何让 ec2 命令行工具在 git bash 中运行?

答案1

我在这里找到了一个解决方案:bash shell 不运行 .bat 文件

跑步

cmd.exe '/c filename.batorexe' 

在适当的目录中(由于某种原因您无法执行子文件夹)。

答案2

不同之处在于 Git Bash (MINGW) 不会将某些环境变量从 Windows 路径格式转换为 *nix 路径格式。它会转换 PATH,但不会转换 EC2_HOME 或 CLASSPATH。

我遇到了同样的错误,然后在 Git Bash 中设置这两个环境变量后,ec2 命令行运行良好:

导出 CLASSPATH="/c/Program Files/ec2-api-tools-1.6.6.3/lib"
导出 EC2_HOME="/c/Program Files/ec2-api-tools-1.6.6.3"

您可以将其添加到 .bash_profile 以便在启动 Git Bash 时自动设置它(而不是更改 Windows 环境变量),这样它可以在 Git Bash 和 Windows 命令行中工作。

答案3

即使在 Windows 上的 git-bash 中,您也可以通过键入“cmd”进入 CMD 模式,然后以正常 cmd 方式使用命令。

所以,您甚至可以尝试一下.....这将免除您为不同的任务打开不同的控制台。

答案4

您的问题是未找到类。似乎您的 bash shell 无法访问 cmd shell 所具有的相同环境。设置正确的环境,bash shell 应该可以工作。

相关内容