60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld
到目前為止,您可能已經(jīng)聽說過Java 9的新模塊系統(tǒng),即項目Jigsaw。 如果您不了解Java 9的新模塊系統(tǒng),則應(yīng)訪問Mark Reinhold的論文“模塊系統(tǒng)的狀態(tài)” 。 此外,您還應(yīng)該訪問@nipafx Nicolai Parlog的出色博客, 網(wǎng)址為http://blog.codefx.org。在那里,他詳細(xì)介紹了Java 9的新模塊系統(tǒng)和許多場景。
在本文中,我將嘗試向您展示如何在60秒內(nèi)使用Java 9的模塊系統(tǒng)創(chuàng)建JavaFX Helloworld應(yīng)用程序。
要求
在撰寫本文時,Java 9仍處于早期訪問階段,這意味著您需要在https://jdk9.java.net/download/上獲取最新版本。
- JDK 9 EA bu??ild 114或更高版本( JDK 9 EA )
使用說明
假設(shè)您已經(jīng)安裝了JDK并設(shè)置了適當(dāng)?shù)沫h(huán)境變量。 另外,您將需要進入命令提示符或終端并鍵入:java -version來驗證已安裝的JDK。 例如。
步驟1:在主目錄中為項目創(chuàng)建目錄,例如分別用于Windows OS,Linux和MacOS的目錄。 另外,在helloworld項目目錄下創(chuàng)建一個src目錄。
# Windowsc:\Users\myusername>md helloworldc:\Users\myusername>md helloworld/src# Linux/user/home/myusername $ mkdir -p helloworld/src# Mac/Users/myusername$ mkdir -p helloworld/srccd helloworld步驟2:根據(jù)Java 9的新方法來組織源代碼和模塊,使用簡單的命名約定創(chuàng)建目錄。
創(chuàng)建一個名為模塊的目錄,例如: com.mycompany.helloworld 。 假設(shè)當(dāng)前目錄為<用戶的主目錄> / helloworld /
mkdir src/com.mycompany.helloworld步驟3:根據(jù)HelloWorld.java文件的程序包名稱空間創(chuàng)建目錄。 在此簡單示例中,將使用以下目錄結(jié)構(gòu)創(chuàng)建主Helloworld.java :
mkdir -p src/com.mycompany.helloworld/com/mycompany/helloworld目錄應(yīng)如下所示:
<User Home dir>/helloworld/src/com.mycompany.helloworld/com/mycompany/helloworld/步驟 4: ? 創(chuàng)建一個module-info.java文件。 這使編譯器知道應(yīng)用程序需要編譯和運行哪些核心模塊依賴性,例如javafx模塊。 在helloworld / src / com.mycompany.helloworld目錄下創(chuàng)建一個名為module-info.java的文件。 將下面的代碼復(fù)制并粘貼到module-info.java文件中。 使用vi,nano或記事本。
module com.mycompany.helloworld {requires javafx.base;requires javafx.graphics;requires javafx.controls;exports com.mycompany.helloworld; }步驟 5: ? 創(chuàng)建HelloWorld.java應(yīng)用程序文件。 該文件將在目錄helloworld / src / com.mycompany.helloworld / com / mycompany / helloworld /中創(chuàng)建。 將下面的代碼復(fù)制并粘貼到HelloWorld.java應(yīng)用程序中。
package com.mycompany.helloworld;import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.stage.Stage;/*** A JavaFX Hello World*/ public class HelloWorld extends Application {/*** @param args the command line arguments*/public static void main(String[] args) {Application.launch(args);}@Overridepublic void start(Stage stage) {stage.setTitle("Hello World");Group root = new Group();Scene scene = new Scene(root, 300, 250);Button btn = new Button();btn.setLayoutX(100);btn.setLayoutY(80);btn.setText("Hello World");btn.setOnAction( actionEvent -> System.out.println("Hello World"));root.getChildren().add(btn);stage.setScene(scene);stage.show();} }步驟 5: ? 使用帶有編譯模塊位置的-d選項編譯源代碼。 新的helloworld模塊的目錄是mods / com.mycompany.helloworld 。
javac -d mods/com.mycompany.helloworld src/com.mycompany.helloworld/module-info.java src/com.mycompany.helloworld/com/mycompany/helloworld/HelloWorld.java步驟 6: ? 將Hello World應(yīng)用程序作為模塊執(zhí)行。 在將模塊編譯到mods目錄中之后,您現(xiàn)在將使用Java 9的新-modulepath選項來指定已編譯模塊的目錄。 另外,您將指定-m選項以執(zhí)行該模塊及其主類HelloWorld。 使用以下命令:
java -modulepath mods -m com.mycompany.helloworld/com.mycompany.helloworld.HelloWorld上一條命令的輸出:
結(jié)論
不知道您是否花費了60秒以上的時間,但是假設(shè)您的環(huán)境已設(shè)置并且JDK 9已安裝,您應(yīng)該能夠在幾秒鐘內(nèi)剪切和粘貼代碼。 我發(fā)現(xiàn)新的Java 9模塊系統(tǒng)非常簡單。 盡管為了讓編譯器知道模塊在哪里有一些額外的輸入,但實際上它與-classpath選項沒有什么不同。
我可以看到大型項目可以將組件分解為模塊并從中受益。 我相信在Java世界中,這確實是令人興奮的時刻,因為工具將能夠構(gòu)建精簡的可執(zhí)行文件,從而縮短加載時間。 我覺得這已經(jīng)是很長一段時間了,但是一個非常需要的功能將鼓勵我們編寫,管理和部署模塊化軟件。
翻譯自: https://www.javacodegeeks.com/2016/04/javafx-helloworld-using-java-9s-project-jigsaw-60-seconds.html
總結(jié)
以上是生活随笔為你收集整理的60秒内使用Java 9的Project Jigsaw的JavaFX HelloWorld的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ddos英文怎么读(ddos用英语怎么说
- 下一篇: 安卓逆向工具手机版(安卓逆向工具)