我在Ubuntu上有一个Docker实例:14.04。我已经安装了java和一切。现在我正在运行一个简单的" HelloWorld.java"容器内的代码。
我正在使用
<div class="col-md-2">
<form action="action.php" method="get" role="search" style="margin-top:20px">
<div class="input-group">
<input style="margin-top:0px" type="text" class="form-control" placeholder="Suchen..." name="srch" id="srch">
<input name="id" value="<?php echo $id; ?>" type="hidden">
<div class="input-group-btn">
<button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</div>
</div>
</form>
</div>
进入容器内部。有一次,我在里面,我可以做很多事情。但是一旦我运行&#34; HelloWorld.java&#34;程序使用
docker run -it --cpuset-mems="0" mt-docking-engine /bin/bash
它给了我&#34;你好,世界!&#34;输出(到目前为止一直很好)。但后来它被卡住了。我甚至不能像往常一样从Docker内部退出(通过CTRL + C)。什么都行不通。
为什么会这样?我做错了什么?
答案 0 :(得分:1)
你甚至不需要System.exit(0)
。您的图像,设置或编译器有所不同:
我跑了这个:
public class HelloWorld {
public static void main(String[] args) {
// Prints "Hello, World" to the terminal window.
System.out.println("Hello, World");
}
}
然后:
$ docker run -ti --cpuset-mems="0" centos:7 /bin/bash
[root@eddd649c8b96 ~]# javac HelloWorld.java
[root@eddd649c8b96 ~]# java -cp . HelloWorld
Hello, World
[root@eddd649c8b96 ~]# exit
答案 1 :(得分:0)
正确的答案是:我必须在代码的末尾添加System.exit(0);
,这是在任何地方提到的。这就是Java应用程序在Docker容器内部退出的方式,而不像其他不需要退出代码的c cpp程序。