写点什么

java 开发之 java 开发环境的快速构建

  • 2021 年 12 月 09 日
  • 本文字数:1322 字

    阅读完需:约 4 分钟

目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本。java培训如果想切换自己本地的 Java 开发环境,折腾起来还是需要花费一些时间的,并且日后在不同版本间切换每次都要折腾一次。

Docker 的出现让我们维护不同版本的开发编译环境变得简单,如果你还不知道什么是 Docker 可以看看 Docker 入门介绍。我们可以采用两种方式来构建 java 的开发环境,一种是在容器内编译运行,一种是在容器外编译运行,下面分别来看看具体如何操作。



容器内编译与运行

本文以一个简单的 Helloworld 程序为例,工程的文件目录结构及代码如下。

$ ls -lhtotal 24-rw-r--r--  1 shiqiang  staff    60B 11 11 19:02 Dockerfile-rw-r--r--  1 shiqiang  staff   123B 11 11 19:02 Helloworld.java
复制代码

代码的内容。

public class Helloworld {    public static void main(String args[]){        System.out.println("Hello world.\n");    }}
复制代码

做好以上准备后,就可以编辑 Dockerfile 的内容。

FROM openjdk:8         #基于 openjdk:8 构建镜像COPY . /usr/src/myapp       #将目录内的代码拷贝到镜像中 /usr/src/myapp 的位置WORKDIR /usr/src/myapp     #将 /usr/src/myapp 设为工作目录RUN javac Helloworld.java     #运行编译命令,编译 Helloworld.java 程序CMD ["java", "Helloworld"]    #执行编译出来的 Helloworld
复制代码

构建镜像文件。

$ docker build -t java_in_docker_env_8 . $ docker images # 使用 docker images 命令可以看到构建出来的 java_in_docker_env_8 镜像
复制代码

运行容器。

$ docker run -it --rm java_in_docker_env_8Hello world.
$ ls -lh total 24-rw-r--r-- 1 shiqiang staff 112B 11 12 10:53 Dockerfile-rw-r--r-- 1 shiqiang staff 123B 11 12 10:49 Helloworld.java
复制代码

可以看到程序的输出,并且看到当前目录下并有没编译出来的结果。但是这种方式每次启动容器的时候都要进行编译,并且没有办法把编译结果进行分享,下一节的内容介绍如何在容器外保存编译结果。

容器外编译与运行

工作目录和代码准备与上一节相同,Dockerfile 文件与上一节略有不同。

FROM openjdk:8COPY . /usr/src/myappWORKDIR /usr/src/myapp
复制代码

构建镜像文件。

$ docker build -t java_env_8$ docker images # 使用 docker images 命令可以看到构建出来的 java_env_8 镜像
复制代码

编译文件。

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java_env_8 javac Helloworld.java$ ls -lh # 可以看到编译出来的结果total 32-rw-r--r--  1 shiqiang  staff   112B 11 12 10:53 Dockerfile-rw-r--r--  1 shiqiang  staff   427B 11 12 11:09 Helloworld.class-rw-r--r--  1 shiqiang  staff   123B 11 12 10:49 Helloworld.java
复制代码

运行程序。

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java_env_8 java Helloworld      Hello world.
复制代码

写在最后

本文仅仅构建了一个简单的 java 开发环境,使用这种方式编译运行 java 程序的好处是无需在本地安装 jdk ,在需要为多个 jdk 版本编译程序的时候更加方便。

原创作者:大江小浪

用户头像

关注尚硅谷,轻松学IT 2021.11.23 加入

还未添加个人简介

评论

发布
暂无评论
java开发之java开发环境的快速构建