Slide 1

Slide 1 text

Javaの学習・実行環境-JBangの概要 2024.12.28 JavaDo#28 三浦 恒樹 (MIURA KOUKI) 診療情報管理士 上級医療情報技師 医用画像情報専門技師 ドゥウェル株式会社

Slide 2

Slide 2 text

長男が飼っている ハリネズミがアイコン INTRODUCE ・ドゥウェル株式会社 (医療系IT開発・導入会社)に所属 ・マネージャー(プレイング・マネージャー) ・仕事では TypeScript, Node.js/JavaScript, Java,C# ・趣味でも TypeScript,Node.js/JavaScript ・3児の父 ・札幌PHP勉強会、JBUG札幌、JavaDO、ゆるWeb勉強会、えびてく 等に参加

Slide 3

Slide 3 text

・JBangとは ・Java11以降の「単一のソースファイル・プログラムを実行」 ・JBangの特徴① 複数ファイル ・JBangの特徴② 依存関係の解決 ・JBangの使用例 INDEX

Slide 4

Slide 4 text

・セットアップなしで、すぐにJavaを学習・実行できる ・「.java ファイルを直接実行するJava 11 以降の   サポートは、少し面倒だと感じませんか?」(GitHub READMEより) https://www.jbang.dev/ // SOURCES Name.java void main() { System.out.println("Hello JBang!"); Name name = new Name(); System.out.println("Hello " + name.getName()); } Hello.java $ jbang --enable-preview Hello.java [jbang] Building jar for Hello.java… Note: /mnt/c/Files/java/quarkus/Hello.java uses preview features of Java SE 21. Note: Recompile with -Xlint:preview for details. Hello JBang! Hello Kouki Miura JBangとは https://github.com/jbangdev/jbang

Slide 5

Slide 5 text

Test.java class Test { public static void main(String[] arg) { System.out.println("Hello World"); } } 単一ファイル実行結果 ソースコードを書く javacでコンパイル javaでクラスファイル を実行 ソースコードを書く javaで単一ファイルを 実行 Java10以前 Java11以降 単一のソースファイル・プログラムに限定される →Java22で複数ソースファイルも実行できるようになった   (458: Launch Multi-File Source-Code Programs) Mavenリポジトリ等の依存関係を解決できない Java11以降の「単一のソースファイル・プログラムを実行」

Slide 6

Slide 6 text

// SOURCES Name.java void main() { System.out.println("Hello JBang!"); Name name = new Name(); System.out.println("Hello " + name.getName()); } Hello.java $ jbang --enable-preview Hello.java [jbang] Building jar for Hello.java… Note: /mnt/c/Files/java/quarkus/Hello.java uses preview features of Java SE 21. Note: Recompile with -Xlint:preview for details. Hello JBang! Hello Kouki Miura public class Name { public String getName() { return "Kouki Miura"; } } Name.java jbang実行結果 JBangの特徴① 複数ファイル

Slide 7

Slide 7 text

jbang実行結果 JBangの特徴② 依存関係の解決

Slide 8

Slide 8 text

・JBANGでQuarkusをインストール >> /home/(ユーザー名)/.jbang/bin/quarkus ・JBANG実行bashスクリプト(https://sh.jbang.dev) ・JBANGがインストールされていなければjbang.tar取得・展開 ・JDKがインストールされていなければJDK(latest)を取得 ・JavaでJBANGを実行する ・JBANGの処理 ①trustコマンド Manage which domains you trust to run scripts from. ②appコマンド Manage scripts installed on the user's PATH as commands. https://ja.quarkus.io/get-started/ curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/ curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio JBangの使用例(Quarkus)

Slide 9

Slide 9 text

・JBangはセットアップ無しでJavaの学習・実行できるツール ・Java標準(Java11以降)でも直接実行できるが制限がある ・JBangは複数ファイルのプログラムを実行できる(Java標準も22以降はできる) ・JBangは依存関係を解決できる ・Quarkusのget-started(環境構築)でも採用されている ご清聴ありがとうございました。 SUMMARY