国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ Java &#&チュートリアル JeKa: 実際に Java を始める最も簡単な方法

JeKa: 実際に Java を始める最も簡単な方法

Jan 06, 2025 pm 08:13 PM

JeKa: The Simplest Way to Start with Java for Real

JeKa は、シンプルさを重視した最新の Java ビルド ツールです。

Java を使い始めるとき、開発者は通常、コードを作成し、コンパイルして、実行するだけです。ただし、これだけでは、他のユーザーが再利用できる便利な Java アプリケーションやライブラリを作成するには十分ではありません。 Java で実用的なものを構(gòu)築するには、次のことを行う必要があります:

  • サードパーティのライブラリ (Guava、Gson、Commons CLI など) を使用します
  • 他の人が使用できるように、アプリケーション/ライブラリをパッケージ化してデプロイします。

これは、MavenGradle などの従來のビルド ツールを使用して行われることがよくあります。これらのツールには多大な學(xué)習(xí)が必要であり、面倒な構(gòu)成が必要になる場合があります。
より簡単な代替手段は JBang です。これを使用すると、ほぼ単一ファイルの Java アプリを作成し、簡単に共有できます。

一方、Jeka は JBang のようにシンプルな依存関係管理とデプロイメントを提供しながら、適切なテストが含まれた標準的なマルチクラス アプリケーションやライブラリを構(gòu)築できます。

新しいコードベースを足場にする

前提條件: Jeka がインストールされている必要があります。

ヒント: 利用可能なオプションをリストするには、jeka Base: --doc.

を?qū)g行します。

すぐにコーディングを開始できる基本構(gòu)造を作成するには、次のコマンドを?qū)g行します。

jeka base: scaffold scaffold.kind=APP

次のプロジェクト構(gòu)造が得られます:

. 
├── jeka-src             <- Source root directory
│   ├── _dev             <- Optional package containing all non-prod (build and test)
│   │   ├── test
│   │   └── Build.java  
│   └── app              <- Sugested base package for production code/resources
│       └── App.java     
├── jeka-output          <- Generated dir where artifacts as jars, classes, reports or doc are generated
├── jeka.properties      <- Build configuration  (Java and jeka version, kben configurations, ...)
└── README.md            <- Describes available build commands

すべての Java コードは jeka-src フォルダーにあるはずです。

_dev は、開発 (テスト、ビルドなど) にのみ使用されるソース コードと依存関係用の特別なパッケージです。Java を初めて使用する場合は、無視するか削除しても問題ありません。

スキャフォールドされた例には、app パッケージに App クラスが含まれています。任意のパッケージ內(nèi)のクラスを追加または変更できます。

IntelliJと同期する

IntelliJ と同期するには、次のコマンドを?qū)g行します。

jeka intellij: iml --force

IntelliJ に変更が表示されない場合は、プロジェクトのルート ディレクトリに移動し、jeka intellij: initProject.

を?qū)g行します。

依存関係の追加

App.java クラスは、ライブラリを參照する @JkDep アノテーションを宣言します。ライブラリは必要なだけ追加できます。すべてのライブラリを同じ基本クラスで宣言することをお勧めします。

@JkDep("com.github.lalyos:jfiglet:0.8.9")
@JkDep("com.fasterxml.jackson:jackson-bom::pom:2.18.2")
@JkDep("com.fasterxml.jackson.core:jackson-core")
@JkDep("com.fasterxml.jackson.core:jackson-annotations")
public class App {

    public static void main(String[] args) {
        ...
    }
}

依存関係の表記の詳細を參照してください。

さらに、JAR ファイルを次のディレクトリにコピーして貼り付けて、依存関係として自動的に含めることができます。

├── jeka-boot      <- Jars included in the production classpath.

本番以外の依存関係を宣言します

本番環(huán)境に埋め込んで依存関係を追加するには、_dev パッケージの下のクラスへの依存関係を宣言します。

package _dev;

@JkDep("org.junit.jupiter:junit-jupiter:5.11.4")
@JkDep("org.mockito:mockito-junit-jupiter:5.15.2")
class Build extends KBean {
    ...
}

リマインダー: 依存関係を変更したら、忘れずに jeka intellij: iml を?qū)g行してください。

アプリケーションを?qū)g行する

アプリケーションは以下を使用して実行できます:

jeka base: scaffold scaffold.kind=APP

開始前にコンパイルをクリーンにするには、--clean オプション (略して -c) を使用します。

このソース コードが Git リポジトリでホストされている場合、リポジトリを次のように參照することでアプリケーションを直接実行できます。

. 
├── jeka-src             <- Source root directory
│   ├── _dev             <- Optional package containing all non-prod (build and test)
│   │   ├── test
│   │   └── Build.java  
│   └── app              <- Sugested base package for production code/resources
│       └── App.java     
├── jeka-output          <- Generated dir where artifacts as jars, classes, reports or doc are generated
├── jeka.properties      <- Build configuration  (Java and jeka version, kben configurations, ...)
└── README.md            <- Describes available build commands

ライブラリを作成する

アプリケーションではなくライブラリを作成する場合は、Maven リポジトリで公開するために、moduleId とバージョン管理の両方を宣言する必要があります。

jeka intellij: iml --force

これで、次のコマンドを?qū)g行してライブラリを公開できます:

@JkDep("com.github.lalyos:jfiglet:0.8.9")
@JkDep("com.fasterxml.jackson:jackson-bom::pom:2.18.2")
@JkDep("com.fasterxml.jackson.core:jackson-core")
@JkDep("com.fasterxml.jackson.core:jackson-annotations")
public class App {

    public static void main(String[] args) {
        ...
    }
}

コードをテストする

スキャフォールドされたコードには、_dev.test.MyTest テスト クラスがすでに含まれており、実行する準備ができています。

├── jeka-boot      <- Jars included in the production classpath.

好きなパッケージにさらにテストを追加できます。ただし、_dev パッケージ (またはそのサブパッケージ) にないテスト クラスはデッド コードとして運用 JAR に含まれることに注意してください。

Java バージョンの変更

現(xiàn)在、Java は急速に進化しており、6 か月ごとに新しいリリースがリリースされています。 JeKa は、Java バージョンを切り替えるための非常に便利な方法を提供します。 jeka.properties ファイルでバージョンを指定するだけです:

package _dev;

@JkDep("org.junit.jupiter:junit-jupiter:5.11.4")
@JkDep("org.mockito:mockito-junit-jupiter:5.15.2")
class Build extends KBean {
    ...
}

これにより、次回のアプリケーションのコンパイルまたは実行中に JDK 23 が自動的にインストールされます。

事前定義されたビルドコマンド

特に、Jeka は次のコマンドを提供します。

jeka --program arg0 args1 ... # or `jeka -p` for short

その他のコマンド:

jeka --remote [git repo url] --program arg0 arg1 ... # or jeka -r [git repo url] -p

完全なプロジェクト構(gòu)造への移動

コードベースが拡大するにつれて、完全なプロジェクト構(gòu)造を使用するほうが快適になるかもしれません。
プロジェクトへの移動は簡単です。その方法を理解するには、「プロジェクトのビルド」チュートリアルを參照してください。

Kotlin を使用したコード作成

コードベースに Kotlin コードを記述することもできます。 jeka.properties ファイルで使用する kotlin バージョンを指定するだけです:

@base.moduleId=org.example:my-lib
@base.version=1.0.0-SNAPSHOT

これで、以下に示すように Kotlin コードを編集したり、コードベース內(nèi)の既存の Java コードとシームレスに統(tǒng)合したり、100% Kotlin アプリケーションを作成したりすることもできます。

jeka maven: publish

結(jié)論

Jeka は、従來のビルド ツールの負擔(dān)なしで実際の Java アプリケーションの作成を開始できる実用的なモードを提供します。

そのポリモーフィックな構(gòu)造により、単純さを犠牲にすることなく、段階的に増加する複雑さとサイズを処理できます。

リソース:

  • ジェカ
  • 簡単なアプリの例
  • Spring-Boot アプリの例
  • ベースの構(gòu)築チュートリアル
  • その他の例

以上がJeKa: 実際に Java を始める最も簡単な方法の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責(zé)任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ハッシュマップとハッシュテーブルの違いは? ハッシュマップとハッシュテーブルの違いは? Jun 24, 2025 pm 09:41 PM

ハッシュマップとハッシュテーブルの違いは、主にスレッドの安全性、ヌル価値のサポート、パフォーマンスに反映されます。 1.スレッドの安全性の観點から、ハッシュテーブルはスレッドセーフであり、その方法はほとんど同期メソッドであり、ハッシュマップはスレッドセーフではない同期処理を?qū)g行しません。 2。ヌル値のサポートに関しては、ハッシュマップは1つのnullキーと複數(shù)のヌル値を許可しますが、ハッシュテーブルはnullキーや値を許可しません。 3.パフォーマンスの観點から、ハッシュマップは同期メカニズムがないため、より効率的です。ハッシュテーブルは、各操作のロックパフォーマンスが低いです。代わりにconcurrenthashmapを使用することをお勧めします。

なぜラッパークラスが必要なのですか? なぜラッパークラスが必要なのですか? Jun 28, 2025 am 01:01 AM

Javaは、基本的なデータ型がオブジェクト指向の操作に直接參加できないため、ラッパークラスを使用し、実際のニーズでオブジェクトフォームが必要になることが多いためです。 1.コレクションクラスは、リストが自動ボクシングを使用して數(shù)値を保存するなど、オブジェクトのみを保存できます。 2。ジェネリックは基本的なタイプをサポートしておらず、パッケージングクラスはタイプパラメーターとして使用する必要があります。 3.パッケージングクラスは、null値を表して、データまたは欠落データを區(qū)別できます。 4.パッケージングクラスは、データの解析と処理を容易にするための文字列変換などの実用的な方法を提供するため、これらの特性が必要なシナリオでは、パッケージングクラスは不可欠です。

JITコンパイラはどのようにコードを最適化しますか? JITコンパイラはどのようにコードを最適化しますか? Jun 24, 2025 pm 10:45 PM

JITコンパイラは、メソッドインライン、ホットスポット検出とコンピレーション、タイプの投機と偏見、冗長操作の排除の4つの方法を通じてコードを最適化します。 1。メソッドインラインで呼び出しのオーバーヘッドを減らし、頻繁に小さな方法と呼ばれる挿入をコールに直接直接挿入します。 2。ホットスポットの検出と高周波コードの実行とそれを中央に最適化して、リソースを節(jié)約します。 3。タイプ投機は、敬v的な呼び出しを達成するためにランタイムタイプ情報を収集し、効率を向上させます。 4.冗長操作は、運用データの削除に基づいて役に立たない計算と検査を排除し、パフォーマンスを向上させます。

インターフェイスの靜的メソッドとは何ですか? インターフェイスの靜的メソッドとは何ですか? Jun 24, 2025 pm 10:57 PM

StaticMethodsinInterfaceswereIntroducatedinjava8toalowutilityは、interfaceitself.beforejava8、そのような導(dǎo)入のために導(dǎo)入されたコード、rediveTodisorgedCode.now、statecmethodssprovidreebenefits:1)彼らの可能性のある測定di

インスタンスイニシャルイザーブロックとは何ですか? インスタンスイニシャルイザーブロックとは何ですか? Jun 25, 2025 pm 12:21 PM

インスタンス初期化ブロックは、Javaで使用され、コンストラクターの前に実行されるオブジェクトを作成するときに初期化ロジックを?qū)g行します。複數(shù)のコンストラクターが初期化コード、複雑なフィールド初期化、または匿名のクラス初期化シナリオを共有するシナリオに適しています。靜的初期化ブロックとは異なり、インスタンス化されるたびに実行されますが、靜的初期化ブロックはクラスがロードされたときに1回のみ実行されます。

変數(shù)の「ファイナル」キーワードは何ですか? 変數(shù)の「ファイナル」キーワードは何ですか? Jun 24, 2025 pm 07:29 PM

Injava、thefinalkeywordpreventsavariaibleのValue frombeingededafterassignment、ButiTsbehiviordiffersforprimitivesandobjectReferences

タイプキャストとは何ですか? タイプキャストとは何ですか? Jun 24, 2025 pm 11:09 PM

変換には、暗黙的で明示的な変換には2つのタイプがあります。 1.暗黙的な変換は、INTを2倍に変換するなど、自動的に発生します。 2。明示的な変換には、(int)mydoubleの使用など、手動操作が必要です。タイプ変換が必要な場合には、ユーザー入力の処理、數(shù)學(xué)操作、または関數(shù)間のさまざまなタイプの値の渡されます。注意する必要がある問題は次のとおりです。浮動小數(shù)點數(shù)を整數(shù)に変換すると、分數(shù)部分が切り捨てられ、大きなタイプを小さなタイプに変えるとデータの損失につながる可能性があり、一部の言語では特定のタイプの直接変換ができません。言語変換ルールを適切に理解することは、エラーを回避するのに役立ちます。

工場のパターンとは何ですか? 工場のパターンとは何ですか? Jun 24, 2025 pm 11:29 PM

ファクトリーモードは、オブジェクトの作成ロジックをカプセル化するために使用され、コードをより柔軟でメンテナンスしやすく、ゆるく結(jié)合します。コアの答えは、オブジェクトの作成ロジックを一元的に管理し、実裝の詳細を隠し、複數(shù)の関連オブジェクトの作成をサポートすることです。特定の説明は次のとおりです。工場モードは、NewClass()の使用を直接回避し、処理のための特別な工場クラスまたは方法にオブジェクトの作成を手渡します。複數(shù)のタイプの関連オブジェクトが作成され、作成ロジックが変更され、実裝の詳細を非表示にする必要があるシナリオに適しています。たとえば、支払いプロセッサでは、Stripe、PayPal、その他のインスタンスが工場を通じて作成されます。その実裝には、入力パラメーターに基づいて工場クラスによって返されるオブジェクトが含まれ、すべてのオブジェクトは共通のインターフェイスを?qū)g現(xiàn)します。一般的なバリアントには、単純な工場、工場法、抽象的な工場が含まれます。これらは異なる複雑さに適しています。

See all articles