iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 1
1
自我挑戰組

練習程式系列 第 1

java,hello world

  • 分享至 

  • xImage
  •  

透過鐵人賽,逼自己學習。
學習方式就是看別人的教學,整理內容或自己寫一些筆記。
內容可能會有錯誤,或不完整。

教學來源:
JDK的下載、安裝、配置及校驗 — 全程圖文詳細教程

現在java到12版本:
https://ithelp.ithome.com.tw/upload/images/20190901/20111994l0WCEQbRVT.png

按下dowload後,會有這個畫面
選擇作業系統,和下載方式(.exe執行檔、.zip壓縮檔)
https://ithelp.ithome.com.tw/upload/images/20190901/20111994Lqr19980OH.png

下載後會有個資料夾叫jdk-12.0.2,裡面的檔案有:
https://ithelp.ithome.com.tw/upload/images/20190901/20111994BqSYwKVhvv.png

進到bin資料夾,bin資料夾裡的東西,就是用來執行java的檔案
裡面有很多.exe檔案和.dll檔案
主要是這兩個東西在執行java(javac.exe、java.exe):
https://ithelp.ithome.com.tw/upload/images/20190902/20111994mVD9ZeR8fu.png

接下來開始寫java程式:

因為java是在bin資料夾執行,所以直接在bin資料夾開個記事本(檔名HelloWorld.java)
https://ithelp.ithome.com.tw/upload/images/20190901/20111994SuiEDoANtr.png

有了程式,那要怎麼執行程式呢?
參考:
使用命令提示字元編譯執行_java程式_環境變數path設定

一 開啟命令提示字元,移動到bin資料夾

D:
cd 路徑

https://ithelp.ithome.com.tw/upload/images/20190902/20111994BttHMgfi18.png
二 javac HelloWorld.java(會生成HelloWorld.class)
三 java HelloWorld(執行HelloWorld.class)
https://ithelp.ithome.com.tw/upload/images/20190902/201119943webR8CWJA.png

如果產生jar檔案?
參考:
[Java]如何將編譯好的.class檔案打包成JAR?

在.class同樣目錄下創建一個 manifest.mf 記事本:
(注意要於下方再空兩行,否則執行JAR檔案的時候會出問題)

Main-Class: HelloWorld



到cmd 執行:

jar cvfm HelloWorld.jar manifest.mf HelloWorld.class

執行後會出現檔案壓縮的詳細情形,表示打包成功:

已新增資訊清單
新增: HelloWorld.class (讀=411)(寫=280)(壓縮 31%)

執行這個指令 就可以執行.jar檔案:

java -jar HelloWorld.jar 

如果有多個jar檔案要怎麼辦?
可以先創一個資料夾放所有jar檔案
然後

javac -verbose -classpath ./jarTest/*; HelloWorld.java
java -cp .;.\jarTest\* HelloWorld

如果有多個class(inner class造成的多個.class檔案) 和jar(套件)怎麼辦 ?
參考:
[Java]如何將編譯好的.class檔案打包成JAR?

可以在.mf檔這樣寫
有main的class是HelloWorld
ClassPath可以放需要的jar路徑

Main-Class: HelloWorld
Class-Path: ./jarTest/Hello.jar ./jarTest/Hello1.jar


然後執行這個把inner class 合成一個HelloWorld.jar檔案:

jar cvfm HelloWorld.jar HelloWorldmanifest.mf HelloWorld.class HelloWorld$Hello.class

下一篇
java 環境變數
系列文
練習程式37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言