このチュートリアルでは、IntelliJ IDEA を例に、Windows で Java 開発環境をセットアップする方法を説明します。
Java 開発環境とは
Java 開発環境は、Java アプリケーションを開発するための一連のツールと構成です。これには、Java 開発キット (JDK)、IntelliJ IDEA、Eclipse、VSCode などの統合開発環境 (IDE)、および Maven などのビルドツールが含まれます。
JDK のインストール
詳細な手順については、「Windows への JDK のインストール」をご参照ください。
IDE のインストール
このガイドでは、IntelliJ IDEA Community を例として使用します。IntelliJ IDEA Community のダウンロードページにアクセスし、[ダウンロード] をクリックして、インストールウィザードに従います。
インストール中、[Installation Options] ステップで、[Add "bin" folder to the PATH] チェックボックスを選択します。他のすべてのステップでは、[Next] をクリックしてデフォルト設定をそのまま使用します。
Maven プロジェクトの作成
-
IntelliJ IDEA を開き、[New Project] をクリックします。
プロジェクトは、コーディング、テスト、ビルド、実行、デプロイメントまで、ソフトウェア開発ライフサイクル全体にわたる包括的な環境を提供し、アプリケーションを効率的に管理するのに役立ちます。
-
[New Project] ウィンドウで、左側のパネルから [Java] を選択し、次の設定を構成します。
Name:プロジェクトの名前を入力します。この例では
helloaliyunを使用します。Location:プロジェクトを保存するディレクトリを指定します。
Build system:[Maven] を選択して Maven プロジェクトを作成します。
JDK:希望する JDK バージョンを選択します。この例では JDK 8 を使用します。
説明JDK を選択するには、[Add JDK...] をクリックし、インストールした JDK のインストールディレクトリに移動します。
Add sample code:このチェックボックスを選択すると、
Mainクラスが自動的に作成されます。 -
[作成] をクリックします。
helloaliyunという名前のプロジェクトが作成されます。これには、基本的なpom.xmlファイル、src/main/javaソースディレクトリ、およびMainという名前のクラスが含まれています。 -
セットアップの確認
src/main/javaディレクトリで、org.exampleパッケージに移動し、Mainクラスを見つけます。クラス名をダブルクリックしてファイルを開き、右上隅にある [実行] アイコンをクリックします。コンソールに
Hello world!という出力が表示されることを確認します。このメッセージが表示された場合、Java 開発環境は正しくセットアップされています。出力例:
"D:\Program Files\Java\jdk-1.8\bin\java.exe" ... Hello world! Process finished with exit code 0
次のステップ
Java 開発環境がセットアップされたので、その実用的なアプリケーションを試すことができます。以下のセクションでは、さまざまな Java 開発タスクのユースケースとガイドを提供します。
1. Java SDK を使用した Alibaba Cloud OpenAPI の呼び出し
-
API 呼び出しを行うには、まずアクセス認証情報として使用する AccessKey ペアを取得する必要があります。RAM ユーザーの AccessKey ペアを使用することを推奨します。詳細については、「RAM ユーザーの AccessKey ペアの作成」をご参照ください。
重要AccessKey ペアを取得したら、それを環境変数として設定します。詳細については、「Linux、macOS、Windows で環境変数を設定する」をご参照ください。
-
SDK センターにログインし、使用したいプロダクトを選択します。この例では、ECS の
DescribeInstanceTypeFamiliesAPI を使用します。 -
[パラメーター] タブで、パラメーターを設定します。 右側の [ドキュメント] タブで、API の説明、使用上の注意 (特に請求情報)、および各パラメーターの意味と使用方法に関する詳細を参照してください。 たとえば、
DescribeInstanceTypeFamiliesAPI を使用する場合、必須の RegionId パラメーターを中国 (青島) のcn-qingdaoに設定し、オプションの Generation パラメーターをシリーズ V インスタンスファミリーのecs-5に設定します。 [ドキュメント] タブには、各リクエストパラメーターのタイプ、必須であるかどうか、値の例などの詳細が記載されています。 -
[SDK サンプル] タブで、[Java] を選択し、[プロジェクトのダウンロード] をクリックして SDK プロジェクトをダウンロードし、解凍します。
-
サンプルコード:
import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesRequest; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesResponse; import com.aliyun.tea.TeaException; import com.aliyun.teaopenapi.models.Config; import com.google.gson.Gson; public class Sample { public static void main(String[] args) { try { Config config = new Config() // System.getenv は環境変数からキーを取得します。 .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; Client client = new Client(config); DescribeInstanceTypeFamiliesRequest describeInstanceTypeFamiliesRequest = new DescribeInstanceTypeFamiliesRequest(); describeInstanceTypeFamiliesRequest.setRegionId("cn-qingdao"); describeInstanceTypeFamiliesRequest.setGeneration("ecs-5"); DescribeInstanceTypeFamiliesResponse describeInstanceTypeFamiliesResponse = client.describeInstanceTypeFamilies(describeInstanceTypeFamiliesRequest); System.out.println(new Gson().toJson(describeInstanceTypeFamiliesResponse)); } catch (TeaException teaException) { // エラーコードを出力します。 System.out.println(teaException.getCode()); // RequestId を含むエラーメッセージを出力します。 System.out.println(teaException.getMessage()); // サーバーから返された特定のエラー内容を出力します。 System.out.println(teaException.getData()); } catch (Exception e) { TeaException error = new TeaException(e.getMessage(), e); // エラーメッセージ。 System.out.println(error.getMessage()); // 診断アドレス。 System.out.println(error.getData().get("Recommend")); com.aliyun.teautil.Common.assertAsString(error.message); } } } -
結果:コードを実行すると、API は呼び出しが成功したことを示す
statusCode200 を返します。レスポンスボディのInstanceTypeFamiliesフィールドには、インスタンスファミリーのリストが含まれています。次のスニペットは、応答の一部を示しています。...'statusCode': 200, 'body': {'InstanceTypeFamilies': {'InstanceTypeFamily': [{'Generation': 'ecs-5', 'InstanceTypeFamilyId': 'ecs.g6'}, {'Generation': 'ecs-5', 'InstanceTypeFamilyId': 'ecs.ebmg6'}]}} -
Java SDK を使用した Alibaba Cloud OpenAPI の呼び出しの詳細については、「IDE で Alibaba Cloud SDK for Java を使用する」をご参照ください。
2. Qwen API を呼び出して対話機能を実装する
-
Alibaba Cloud Model Studio を使用すると、API を使用して大規模モデルを呼び出すことができます。OpenAI 互換 API や DashScope SDK など、複数のアクセス方法を提供しています。サービスを呼び出すには、まず Alibaba Cloud Model Studio を有効化し、API キーを取得します。詳細については、「アカウント設定」をご参照ください。
重要API キーを取得したら、それを環境変数として設定します。これにより、アプリケーションにキーをハードコーディングすることを避け、漏洩のリスクを低減します。手順については、「API キーを環境変数として設定する」をご参照ください。
-
次の依存関係を
pom.xmlファイルに追加して、DashScope SDK for Java をインストールします。<dependency> <groupId>com.alibaba</groupId> <artifactId>dashscope-sdk-java</artifactId> <!-- 'the-latest-version' を https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java の最新バージョンに置き換えてください --> <version>the-latest-version</version> </dependency> -
Java および DashScope SDK をインストールした後、次のサンプルコードを実行して Qwen API を呼び出します。
package org.example.nlp.ai; import java.util.Arrays; import java.lang.System; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.generation.GenerationParam; import com.alibaba.dashscope.aigc.generation.GenerationResult; import com.alibaba.dashscope.common.Message; import com.alibaba.dashscope.common.Role; import com.alibaba.dashscope.exception.ApiException; import com.alibaba.dashscope.exception.InputRequiredException; import com.alibaba.dashscope.exception.NoApiKeyException; public class Sample { public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException { Generation gen = new Generation(); Message systemMsg = Message.builder() .role(Role.SYSTEM.getValue()) .content("You are a helpful assistant.") .build(); Message userMsg = Message.builder() .role(Role.USER.getValue()) .content("Who are you?") .build(); GenerationParam param = GenerationParam.builder() // System.getenv は環境変数から API キーを取得します。環境変数を設定していない場合は、次の行を .apiKey("sk-xxx") に置き換え、Alibaba Cloud Model Studio の API キーを使用してください。 .apiKey(System.getenv("DASHSCOPE_API_KEY")) .model("qwen-plus") .messages(Arrays.asList(systemMsg, userMsg)) .resultFormat(GenerationParam.ResultFormat.MESSAGE) .build(); return gen.call(param); } public static void main(String[] args) { try { GenerationResult result = callWithMessage(); System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent()); } catch (ApiException | NoApiKeyException | InputRequiredException e) { System.err.println("Error message: " + e.getMessage()); } System.exit(0); } } -
結果:コードを実行すると、次のような出力が表示されます。
15:44:00.413 [main] DEBUG com.alibaba.dashscope.protocol.okhttp.OkHttpClientFactory - [connectionPool Config] connectionPoolSize: 32 15:44:00.468 [main] DEBUG com.alibaba.dashscope.protocol.okhttp.OkHttpClientFactory - [connectionPool Config] maxRequests: 32 15:44:00.468 [main] DEBUG com.alibaba.dashscope.protocol.okhttp.OkHttpClientFactory - [connectionPool Config] maxRequestsPerHost: 32 I am Qwen, a large language model developed by the Tongyi Lab at Alibaba Group. I can answer questions, create content such as stories, official documents, emails, scripts, and poems, and perform logical reasoning, programming, and even play games. I am proficient in multiple languages and can provide you with a wide range of assistance. If you have any questions or need to create content -
Qwen API の呼び出しの詳細については、「DashScope SDK for Java の使用」をご参照ください。
3. DeepSeek API の呼び出し
このセクションでは、Alibaba Cloud Model Studio プラットフォーム上で API を使用して DeepSeek モデルを呼び出す方法について説明します。deepseek-r1 と deepseek-v3 はそれぞれ 100 万の無料トークンを提供し、一部の蒸留モデルは期間限定の無料トライアルで利用できます。
-
サービスを呼び出すには、まず Alibaba Cloud Model Studio を有効化し、API キーを取得します。詳細については、「アカウント設定」をご参照ください。
重要API キーを取得したら、それを環境変数として設定します。これにより、アプリケーションにキーをハードコーディングすることを避け、漏洩のリスクを低減します。手順については、「API キーを環境変数として設定する」をご参照ください。
-
次の依存関係を
pom.xmlファイルに追加して、DashScope SDK for Java をインストールします。<dependency> <groupId>com.alibaba</groupId> <artifactId>dashscope-sdk-java</artifactId> <!-- 'the-latest-version' を https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java の最新バージョンに置き換えてください --> <version>the-latest-version</version> </dependency>重要DashScope SDK のバージョンは 2.18.2 以降である必要があります。
-
Java および DashScope SDK をインストールした後、次のサンプルコードを実行して DeepSeek モデルサービスを呼び出します。
import java.util.Arrays; import java.lang.System; import com.alibaba.dashscope.aigc.generation.Generation; import com.alibaba.dashscope.aigc.generation.GenerationParam; import com.alibaba.dashscope.aigc.generation.GenerationResult; import com.alibaba.dashscope.common.Message; import com.alibaba.dashscope.common.Role; import com.alibaba.dashscope.exception.ApiException; import com.alibaba.dashscope.exception.InputRequiredException; import com.alibaba.dashscope.exception.NoApiKeyException; public class Sample { public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException { Generation gen = new Generation(); Message userMsg = Message.builder() .role(Role.USER.getValue()) .content("Which is larger: 9.9 or 9.11?") .build(); GenerationParam param = GenerationParam.builder() // 環境変数を設定していない場合は、次の行を .apiKey("sk-xxx") に置き換え、Alibaba Cloud Model Studio の API キーを使用してください。 .apiKey(System.getenv("DASHSCOPE_API_KEY")) .model("deepseek-r1") .messages(Arrays.asList(userMsg)) // これを "text" に設定しないでください。 .resultFormat(GenerationParam.ResultFormat.MESSAGE) .build(); return gen.call(param); } public static void main(String[] args) { try { GenerationResult result = callWithMessage(); System.out.println("Reasoning:"); System.out.println(result.getOutput().getChoices().get(0).getMessage().getReasoningContent()); System.out.println("Final answer:"); System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent()); } catch (ApiException | NoApiKeyException | InputRequiredException e) { // ロギングフレームワークを使用して例外情報を記録します。 System.err.println("An error occurred while calling the generation service: " + e.getMessage()); } System.exit(0); } } -
出力の確認
Reasoning: Hmm, the user is asking which is larger, 9.9 or 9.11. This looks simple, but it may need careful analysis, especially how the numbers are interpreted. First, I should confirm whether the user means decimals or something else, like version numbers or dates. But as a common math question, it should be a decimal comparison. First, I need to clarify the structure of these numbers. 9.9 is usually 9 plus 0.9, which is 9.90. 9.11 is 9 plus 0.11. The integer parts are both 9, so I compare the fractional parts: 0.90 and 0.11. Clearly, 0.90 is greater than 0.11, so 9.9 is larger than 9.11. However, a common confusion happens when the numbers are treated as version numbers, such as software versions. But the user may have a different context. If treated as a version number, 9.11 can mean version 9, update 11, while 9.9 means version 9, update 9, and then 9.11 is greater. So I may need to confirm the context, but as a standard decimal comparison, 9.9 is larger. Final answer: When comparing 9.9 and 9.11 as **decimal numbers**: - Treat 9.9 as 9.90, so the fractional part is 0.90. - The fractional part of 9.11 is 0.11. - Since **0.90 > 0.11**, **9.9 > 9.11**. If you mean **version numbers** (such as software versions): - 9.11 can mean the 11th update of version 9, while 9.9 is the 9th update, so **9.11 > 9.9**. **By default, as decimals, 9.9 is larger.**