【问题标题】:Compile a java file using docker with own path使用带有自己路径的 docker 编译 java 文件
【发布时间】:2015-03-02 13:43:19
【问题描述】:

喂。我正在尝试使用 docker 编译一个 .java 文件。我阅读了 docker 网站上的文件,也阅读了这些链接:

docker's website

about volumes

and another question I had put up for gcc compiler

我理解 gcc 编译器的概念,因为它不会创建任何额外的编译文件。 但是java可以。如果我使用以下命令并编译一个名为 Main.java 的文件,它会在我的 /home 目录中创建一个 Main.class 文件

sudo docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java:7 javac Main.java

从上面的链接学习后,我能够使用我自己的路径成功编译一个 java 文件:

docker run --rm -v /mypathhere/mycode.java:/mycode.java: java:7 javac mycode.java"

如果有任何错误,它会显示一个错误,但如果没有,它只会编译并且不给我任何输出,这是合理的,因为它会创建一个 Main.class 文件。

我的问题是我找不到 Main.class 文件。我不知道 docker 在哪里创建它,我对它的理解为零。请帮帮我。

【问题讨论】:

    标签: java ubuntu docker javac


    【解决方案1】:

    .class 文件将位于容器内的根目录下。

    最好的方案是挂载整个源目录并让javac把结果放到同一个目录例如:

    docker run --rm -v /mypathhere:/mycode java:7 sh -c "cd mycode; javac mycode.java"
    

    这样,您应该将类​​文件写入mypathhere 目录。

    抱歉,如果这不太奏效 - 这不是我的想法。希望你能明白这一点。

    【讨论】:

    • 它给出了以下错误。 mycode.java:1: error: error while writing mycode: mycode.class (Read-only file system) class mycode { ^ 1 error
    • 哎呀——我的代码后面有一个虚假的“:”。再试一次;我刚刚测试过,它对我有用。
    • 哈哈。那太棒了!当我的项目完成后,我会特别感谢你:')
    • 嗨,看来我又需要你的帮助了。对不起,你能指导我吗?
    猜你喜欢
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 2015-09-11
    • 2016-05-22
    • 2021-01-27
    相关资源
    最近更新 更多