激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - 利用 Docker 構建簡單的 java 開發編譯環境的方法詳解

利用 Docker 構建簡單的 java 開發編譯環境的方法詳解

2021-05-19 17:49Cocowool 服務器知識

這篇文章主要介紹了利用 Docker 構建簡單的 java 開發編譯環境的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

目前 Java 語言的版本很多,除了常用的 Java 8,有一些遺留項目可能使用了 Java 7,也可能有一些比較新的的項目使用了 Java 10 以上的版本。如果想切換自己本地的 Java 開發環境,折騰起來還是需要花費一些時間的,并且日后在不同版本間切換每次都要折騰一次。

Docker 的出現讓我們維護不同版本的開發編譯環境變得簡單,如果你還不知道什么是 Docker 可以看看 Docker 入門介紹。我們可以采用兩種方式來構建 java 的開發環境,一種是在容器內編譯運行,一種是在容器外編譯運行,下面分別來看看具體如何操作。

準備工作:首先確保已經安裝了 Docker ,如果方便可以提前把 openjdk:8 的鏡像拉取下來,到時可以節省大家的時間。本文在 macOs 10.15.7 、Docker 19.03.8 的環境下驗證通過。

容器內編譯與運行

本文以一個簡單的 Helloworld 程序為例,工程的文件目錄結構及代碼如下。

?
1
2
3
4
$ ls -lh
total 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

代碼的內容。

?
1
2
3
4
5
public class Helloworld {
 public static void main(String args[]){
 System.out.println("Hello world.\n");
 }
}

做好以上準備后,就可以編輯 Dockerfile 的內容。

?
1
2
3
4
5
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

構建鏡像文件。

?
1
2
$ docker build -t java_in_docker_env_8 .
$ docker images # 使用 docker images 命令可以看到構建出來的 java_in_docker_env_8 鏡像

運行容器。

?
1
2
3
4
5
6
7
$ docker run -it --rm java_in_docker_env_8
Hello 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 文件與上一節略有不同。

?
1
2
3
FROM openjdk:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp

構建鏡像文件。

?
1
2
$ docker build -t java_env_8
$ docker images # 使用 docker images 命令可以看到構建出來的 java_env_8 鏡像

編譯文件。

?
1
2
3
4
5
6
$ 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

運行程序。

?
1
2
$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java_env_8 java Helloworld
Hello world.

寫在最后

本文僅僅構建了一個簡單的 java 開發環境,使用這種方式編譯運行 java 程序的好處是無需在本地安裝 jdk ,在需要為多個 jdk 版本編譯程序的時候更加方便。但是對于復雜的工程常常使用 maven 或者 graddle 進行構建,這種項目能否使用本文提到的方式來構建呢,敬請期待本系列的下一篇文章,也歡迎大家關注公眾號獲得最新的文章推送。

參考資料Docker - Create a Java development environment

到此這篇關于利用 Docker 構建簡單的 java 開發編譯環境的文章就介紹到這了,更多相關docker構建java開發編譯環境內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/cocowool/p/build_java_dev_with_docker.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色吧久久| 黄色大片在线免费观看 | 一级一级一级一级毛片 | 777zyz色资源站在线观看 | 欧美成人免费在线视频 | 性 毛片 | 性高跟鞋xxxxhd4kvideos | 激情小说色 | 国产一级αv片免费观看 | 中文黄色一级片 | 国产免费小视频在线观看 | 欧美黄色大片免费观看 | 国产porn在线 | 在线播放免费播放av片 | 狠狠ri | 国产精品高潮99久久久久久久 | 中文日韩 | 免费看h网站 | 亚洲白嫩在线观看 | 久草在线视频首页 | 国产免费一级淫片 | 91免费版在线 | 黄色网电影 | 亚洲美女网站在线观看 | 亚洲网站一区 | 久久亚洲视频网 | 美女色影院| 国产欧美日韩在线不卡第一页 | 国产在线播放一区二区 | 91精品观看91久久久久久国产 | 午夜视频免费在线观看 | 久久精品中文字幕一区二区三区 | 91精品国产91久久久久久不卞 | xxxx18韩国护士hd老师 | 久久久久久久久久久影视 | 国产成人精品二区 | 国产69精品久久久久9999不卡免费 | 日韩精品一区二区三区中文 | 手机在线看片国产 | 日韩在线视频一区二区三区 | 免费久久精品 |