Javaのアーティファクトがより良いものに:jpackageはJava 16からプロダクションレディです

jpackage在Java 16中已经可以生产了

博士TL;
JDK (Java开发工具包)14では自己完結型Javaアプリケーションをパッケージングするものとして,Javaツールキットにインキュベーション機能が追加されました。★★★★★★★★★★★★★★★★★★★★★★★★★★


異なるプラットフォーム用のコンパイルについて考えると震えるという方,私にはその気持ちがよくわかります。Javaの約束の1つであるWORA(Write Once, Run Anywhere)原則はプラットフォームの独立性に革命をもたらしたものの、もう1つのステップである「どこにでもデプロイできる」ことには至りませんでした。個人的にWORADAは素晴らしいと思いますが、Dockerの登場以前「自分のマシンでは動くのに」問題をなくすのは自分のマシンを出荷するのと同じくらい面倒なことだと思われていたのではないでしょうか。

つまりあなたはクラスを書き,jarファイルを作り,正しいJVM(またはJDK)とすべての依存関係を必要とし,動かすために特殊な作業を行ってきました。中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:中文:?

。過去数年間“Javaアプリケーションのデプロイに非常に苦労している”という苦情に対して,“少なくともJavaだとすべてのプラットフォームで動作するけど,他はそれさえもできない”と答えていましたが,码头工人とコンテナの台頭により”少なくともマルチプラットフォームである”という議論は水の泡となってしまいました。マルチプラットフォームのサポートは(ターゲットプラットフォームを出荷するので)突然それほど重要ではなくなりましたが,アプリケーション全体を含むパッケージを持つことが勝者となったのです。

ネイティブなJavaアプリケーションのインストーラー・ジェネレーター,jpackage

码头工人中311 (Java API包装机和CLI)の最初のリリースからわずか4年,ついに日の目を見ました。そのアイデアは古くて放置されていたjavapackager(その目的は“蚁タスクの代替として使用されること”でした甲骨文の公式ドキュメントからの引用です,冗談ではありません!)をクリーンアップし,文書化し,適切なAPIを提供し,Java開発者が適切なインストーラを作成できるようにすることでした。……JEP, 343, 392:包装工具> > > > > > > > >パッケージングツールはJava 16のリリースできれいに書き直され,素晴らしいものになりました。。

$ jpackage create-installer——runtime-installer \——name——output outputdir

これですべて(アプリ,依存ファイル,JRE,厨房水槽)を含むインストーラー(msi / .exe1、dmg。deb / rpm)を作成したことになります。

使用JFrog的Artifactory DevOps工具增强您的maven构建

?? ?

你怎么看?。。

$ jpackage——name myapp——input lib——main-jar main.jar \——main-class myapp。主要

このパッケージにはmyapp。アプリケーションを起動するために,ランチャーは入力ディレクトリからコピーされたすべてのJARファイルをJVMのクラスパスに配置します。

jre ?

?…,…,…,…JREを含むけれどもすべてではない,という間を取ったやり方を見つけましょう。jlinkコマンドを使って,本当に必要なモジュールだけを含むJREのサブセットを作ることができます。

$ jlink——add-modules java.baseSQL——output smalljre

smalljre。。

$ jpackage——name myapp——input lib——main-jar main.jar \——runtime-image

jpackage? ?我非常喜欢你。> > Docker > > > > > > >,,,,,,,,,,,,。你在说什么?お答えしましょう,私たちはスタンドアロンのJavaアプリケーションを持ち,(Run Anywhere)

Java

。?★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

  • 。。JFrog平台はまさにそれを実現する無料のクラウドアカウント。Javaパッケージをジェネリックリポジトリにデプロイすることで、それを必要な人が自分のデバイスにダウンロード出来るようになります。
    • JFrog平台はDebianおよびrpmパッケージのリポジトリタイプにも対応しているので,DebianやrpmのJavaパッケージをネイティブにホストし,提供することができます。
    • 配布の体験をさらに向上させたい場合,上位のJFrog平台のサブスクリプションレベルにおいて,世界中どこでもより快適なダウンロード速度を提供する内容分发网络
  • Docker。【中文翻译JFrog容器注册。どちらの場合も,あなたの码头工人イメージのための無料の码头工人レジストリと,それらイメージのコンテンツ,つまり私たちのJavaパッケージのためのジェネリックリポジトリが使えるようになります。次に,シンプルな添加命令で,1つのファイル(Javaパッケージ)をイメージにコピーし,Dockerfileをシンプルに整頓できます。

Java 16 -

すべてのjarを集め,任意のJREを追加し,簡単なコマンドですべてをパッケージングすると,Java初心者の”この混乱から一体どうやってアプリケーションを作ればいいのか”という疑問が現実のものとなります。★★★★★★★★JFrog平台を使ってどんなターゲットやエンドユーザーにもアクセスできるようにすれば,最強の組み合わせになります。

Java 16のリリースとJavaコミュニティに与える影響については,以下のブログ記事をご覧ください。
Java 16提交到Git和GitHub:个人反思

Java®Oracle (Oracle)