我试图通过bash脚本从docker运行jar,在其中有param -Djava.specification.name=Java Platform API Specification
,运行后出现错误:“找不到或加载主类平台”。添加双引号后,我得到另一个错误:“找不到或加载主类秒数”。在脚本中,我只有2个带有“ seconds”的参数
在其上加上双引号后,我得到err“找不到或加载主类秒数”“。如何解决?
Dokckerfile:
FROM anapsix/alpine-java:8_server-jre
RUN mkdir -p /opt/encry
ADD 0/EncryCore.jar /opt/encry/EncryCore.jar
ADD 1/template.conf 2/startNode.sh /opt/encry/
RUN chmod +x /opt/encry/startNode.sh
ENTRYPOINT ["\/opt\/encry\/startNode.sh"]
EXPOSE 10001
startNode.sh:
#!/bin/bash
echo Options: $OPTS
echo 123
echo "java $OPTS -jar /opt/app/EncryCore.jar /opt/encry/template.conf"
java $OPTS -jar /opt/app/EncryCore.jar /opt/encry/template.conf
答案 0 :(得分:1)
您应该引用任何包含或可以包含空格的值。
所以:
-Djava.specification.name="Java Platform API Specification"
-Dakka.actor.deployment.default.within="5 seconds"
-Dakka.stream.materializer.stream-ref.subscription-timeout="30 seconds"
如果它是从脚本传递过来的,请在引号前面加上\
来对引号进行转义,或将整个字符串用单引号引起来。