Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 正在运行keytool,在-file参数中获取错误?_Bash_Shell_Keytool - Fatal编程技术网

Bash 正在运行keytool,在-file参数中获取错误?

Bash 正在运行keytool,在-file参数中获取错误?,bash,shell,keytool,Bash,Shell,Keytool,我正在阅读这篇关于如何允许android客户端使用自签名证书的文章: 在步骤2,我必须运行一些命令,但我对shell不太熟悉,在尝试运行以下命令时出现语法错误: export CLASSPATH="/Users/me/Desktop/lib/java/bouncycastle/bcprov-jdk16-145.jar" CERTSTORE=res/raw/mystore.bks if [ -a $CERTSTORE ]; then rm $CERTSTORE || exit 1 fi

我正在阅读这篇关于如何允许android客户端使用自签名证书的文章:

在步骤2,我必须运行一些命令,但我对shell不太熟悉,在尝试运行以下命令时出现语法错误:

export CLASSPATH="/Users/me/Desktop/lib/java/bouncycastle/bcprov-jdk16-145.jar"
CERTSTORE=res/raw/mystore.bks
if [ -a $CERTSTORE ]; then
    rm $CERTSTORE || exit 1
fi
keytool \
  -import \
  -v \
  -trustcacerts \
  -alias 0 \
  -file <(openssl x509 -in mycert.pem) \
  -keystore $CERTSTORE \
  -storetype BKS \
  -provider org.bouncycastle.jce.provider.BouncyCastleProvider \
  -providerpath /usr/share/java/bcprov.jar \
  -storepass mypassword
嗯,我不明白异常告诉我哪个参数不好。更新的脚本如下所示:

export CLASSPATH="/Users/me/Desktop/lib/java/bouncycastle/bcprov-jdk16-145.jar"
CERTSTORE=res/raw/mystore.bks
if [ -a $CERTSTORE ]; then
  rm $CERTSTORE || exit 1
fi
keytool \
  -import \
  -v \
  -trustcacerts \
  -alias 0 \
  -file $(openssl x509 -in mycert.pem) \
  -keystore $CERTSTORE \
  -storetype BKS \
  -provider org.bouncycastle.jce.provider.BouncyCastleProvider \
  -providerpath /usr/share/java/bcprov.jar \
  -storepass mypassword

谢谢

您可能没有运行Bash。
Ah-hmm-我只是在我的mac上通过控制台运行这个。我加了#/bin/bash语句,但在尝试运行它时出现了相同的错误(sh./test.sh)@user291701:No,如果这样运行,则Bourne shell正在运行它。或者像这样运行它:
bash./test.sh
或者使它可执行(
chmod+x test.sh
),然后像这样运行:
/test.sh
。啊,像“bash./test.sh”这样运行它让它正确执行(我收到了一个与bouncy castle jar相关的类未找到异常,但这可能是因为我没有在类路径中正确设置它)。谢谢!@user291701:我很高兴你取得了进展。谢谢你接受我的答案。别忘了,你也可以将你接受的答案加上任何其他答案或问题进行投票(在您有投票权的网站上的任何地方)您发现出于任何原因(也可以进行向下投票)。美元符号不起作用。这会将
openssl
命令的输出放在命令行上,因此它会尝试执行文本。
java.lang.RuntimeException: Usage error, CERTIFICATE----- is not a legal command
  at sun.security.tools.KeyTool.parseArgs(KeyTool.java:375)
  at sun.security.tools.KeyTool.run(KeyTool.java:171)
  at sun.security.tools.KeyTool.main(KeyTool.java:166)
export CLASSPATH="/Users/me/Desktop/lib/java/bouncycastle/bcprov-jdk16-145.jar"
CERTSTORE=res/raw/mystore.bks
if [ -a $CERTSTORE ]; then
  rm $CERTSTORE || exit 1
fi
keytool \
  -import \
  -v \
  -trustcacerts \
  -alias 0 \
  -file $(openssl x509 -in mycert.pem) \
  -keystore $CERTSTORE \
  -storetype BKS \
  -provider org.bouncycastle.jce.provider.BouncyCastleProvider \
  -providerpath /usr/share/java/bcprov.jar \
  -storepass mypassword
#!/bin/bash