- 1. AWSで簡易なWebアプリをデプロイ ~ アプリケーション編 ~
- 2. AWSで簡易なWebアプリをデプロイ ~ サーバ編 ~
- 3. SpringBootで環境構築
- 4. jpackage(というかjlink)でハマった話
- 5. Google Web Toolkit入門:Javaデベロッパーのための強力なWebアプリケーションフレームワーク
- 6. Cucumberを使用したJavaテスト自動化の完全ガイド
- 7. Spring Boot入門:基礎から実践まで
- 8. 正しい形式で入力されるまで再入力させるメソッド
- 9. NetBeans環境構築 なぞの不具合
- 10. NetBeansをZip版でセットアップする方法(Windows11向け)
- 11. [Java]String型の配列をint型の配列に変換する
- 12. H2コンソールでデータベースの新規作成ができなかった時
- 13. VScodeプラグイン 各言語おすすめ
- 14. 初めてのC++ ~JavaとC言語との違い~
- 15. Tomcatのデフォルトはリクエストパスに%2fを含むと400を返す
- 16. AndroidアプリにUnity as a Libraryを導入する
- 17. Azure Functions を Azure Container Apps にデプロイする 2 種類の方法の比較について
- 18. 【Java & Spring】オリジナルのバリデーターを作成しよう
- 19. Java コードの基本
- 20. Javaの準備
AWSで簡易なWebアプリをデプロイ ~ アプリケーション編 ~
お疲れ様です.Tomです.
AWSで簡易なWebアプリをデプロイ【アプリケーション編】です.
:::note info
全体概要編は[こちら](https://qiita.com/tomtech_2024/items/fc14e5fe845b7d7d5712)をご覧ください.
:::スタックを示した構成図でいうところの赤で囲った枠が今回のトピックになります.
![application01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918716/a2e43ba8-f5c8-a583-5a83-39c8c31dc4be.png)
ここではアプリケーションの **コーディングとビルド** に焦点を当てます.
僕自信オブジェクト指向という概念はなんとなくわかるものの,JavaやHTMLの中身を見てすぐにデバッグできるみたいなスキルはないので,調べながらやりました.また実行に関しては `サーバ編`で触れることにいたします.`アプリの目的としては定義した機能群をソースコードに落とし込み,【ユ
AWSで簡易なWebアプリをデプロイ ~ サーバ編 ~
お疲れ様です.Tomです.
AWSで簡易なWebアプリをデプロイ【サーバ編】です.
:::note info
全体概要編は[こちら](https://qiita.com/tomtech_2024/items/fc14e5fe845b7d7d5712)をご覧ください.
:::スタックを示した構成図でいうところの赤で囲った枠が今回のトピックになります.
![appserver01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918716/6a0840ca-6c0c-77df-4d93-e0a25561569b.png)
ここではサーバの構築と,アプリケーションの **実行** に焦点を当てたいと思います.
※ サーバでアプリが動く仕組みなどはここでは触れないので,興味のある方はご自身で調べてみてください.後日簡易な内容を記事にする予定なので,その際にご説明したいと思います.`目的としてはアプリケーションを動作させるサーバを構築して,【ユーザにアプリケーションを提供すること】です.`
#
SpringBootで環境構築
## IntelliJ
今回はIntelliJを使って環境構築をしようと思う
IntelliJには無料版と有料版があるが今回は私が学生なので無料版が使えるということがあり無料版を使おうと思う。
## ItelliJのインストール
https://blog.jetbrains.com/ja/2019/08/22/2105/
ここから大学のメールアドレスを使って学生パックのライセンスを取得する。
そうしたらIntelliJ IDEAをインストールしよう。
## SpringBootの環境構築の準備
### SpringBootの雛形を取得する
https://start.spring.ioSpringBootの雛形には上からspring initializerに行きここで雛形を取得する。
![スクリーンショット 2024-09-14 17.23.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880447/4d192d34-6f4b-0a7c-3a97-f50dfd0de70b.png)
jpackage(というかjlink)でハマった話
## はじめに
初投稿です。お手柔らかにお願いします。
[ハマったリポジトリ]( https://github.com/u-donbei/udon-pasuta/ “ハマったリポジトリ”) は公開しています。## jpackageとは
Javaアプリケーションを自己完結型化し、そのインストーラーを作成できるJDKに付属しているツールです。## 状況
JavaFX[^1]でゲームを作り、`jpackage`でインストーラーを作ろうとしました。
無事にgradleのビルドが成功し、できたexeファイルを実行したその時!
カーソルのグルグルが出たので、ウィンドウが出てくるかと思ったら、何分経っても出てこない。
この時は「なんでだろう?例外でも出てるのかな?」と思いましたが、これの解決に2日かかりました…## 原因
原因は、配布用JREにjdk.management.agentモジュールが含まれていなかったことです。`jpackage`に`–win-console`をつけてみると、
“`terminal
Error occurred during initializat
Google Web Toolkit入門:Javaデベロッパーのための強力なWebアプリケーションフレームワーク
## はじめに
Google Web Toolkit(GWT)は、JavaデベロッパーがHTML5とJavaScriptを使用して高性能なWebアプリケーションを構築するためのオープンソースフレームワークです。GWTを使用することで、JavaコードをJavaScriptに変換し、クロスブラウザ対応の洗練されたユーザーインターフェースを作成することができます。
この記事では、GWTの基本から応用まで、15章にわたって詳しく解説していきます。各章では、概念の説明と実践的なコード例を提供し、GWTの理解を深めていきましょう。
## 第1章:GWTの基礎
GWTは、JavaデベロッパーがWebアプリケーションを効率的に開発するためのツールセットです。主な特徴として、JavaからJavaScriptへのコンパイル、クロスブラウザ互換性、そしてリッチなユーザーインターフェースの構築が挙げられます。
まずは、簡単なHello Worldアプリケーションを作成してみましょう。
“`java
package com.example.myapp.client;import com.goo
Cucumberを使用したJavaテスト自動化の完全ガイド
## はじめに
こんにちは!今回は、Javaプロジェクトでのテスト自動化に欠かせないツールであるCucumberについて、詳しく解説していきます。Cucumberを使うことで、開発者だけでなく、ビジネス側の方々も理解しやすいテストシナリオを作成できます。それでは、Cucumberの基本から応用まで、15章に渡ってご紹介していきましょう。
## 第1章: Cucumberとは
Cucumberは、振る舞い駆動開発(BDD)をサポートするオープンソースのテスティングツールです。人間が読みやすい形式でテストシナリオを記述し、それを自動化されたテストとして実行することができます。
Cucumberの主な特徴は以下の通りです:
– 自然言語でテストシナリオを記述
– 開発者とビジネス側のコミュニケーションを促進
– 多言語対応(日本語でのシナリオ記述も可能)
– Javaを含む多くのプログラミング言語をサポート## 第2章: Cucumberのセットアップ
まずは、Javaプロジェクトにおいて、Cucumberをセットアップする方法を見ていきましょう。
1. Mavenを使用し
Spring Boot入門:基礎から実践まで
## はじめに
Spring Bootは、Javaベースの強力なフレームワークで、効率的で迅速なアプリケーション開発を可能にします。この記事では、Spring Bootの基本から応用まで、15章にわたって詳しく解説します。各章では、概念の説明と実践的なコード例を提供し、初心者から中級者まで幅広い読者に役立つ内容となっています。
## 第1章:Spring Bootの概要
Spring Bootは、Spring フレームワークの上に構築された革新的なツールです。従来のSpringアプリケーションの複雑な設定を大幅に簡素化し、開発者が核心的なビジネスロジックに集中できるようにします。
主な特徴:
– 自動設定
– スタンドアロン実行可能なJARファイル
– 組み込みサーバー
– プロダクション対応の機能以下は、最小限のSpring Bootアプリケーションの例です:
“`java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.S
正しい形式で入力されるまで再入力させるメソッド
備忘録で書きました。
#### プログラムについて
`inUserName`メソッド:
1.`input`で文字列を受け取り、`checkName`メソッドで判定する。
2.`checkName`メソッドで判定が通ったら`userName`に代入する。
3.`userName`を返す。`checkName`メソッド:
`input`の値が「大文字1~10文字以内の文字列」に当てはまらない場合は再入力を要求する。## だめだったやつ
最初に入力した文字が戻り値になってしまうので、`checkName`メソッドで再入力しても修正されていない不具合が発生します。
###### 筆者の勘違い:`checkName`メソッドの戻り値が自動的に`inUserName`にある`input`の値を上書きすると思っていました“`diff_java
public String inUserName(){
System.out.println(“ローマ字(大文字のみ)でユーザー名を入力してください…”);
String input = new Scanner(System.in).nex
NetBeans環境構築 なぞの不具合
# NetBeansのセットアップでなぞの不具合が発生し、解決できたので情報共有します
### 不具合の詳細
![スクリーンショット 2024-09-12 125150.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3881962/824a0164-dc49-4f0f-d111-53f31f4f1907.png)NetBeansの公式サイトからexeファイルをダウンロードした後に起動したところ、このように固まってしまった。
パソコンの詳細
windows11
JDK ver.17.0 (22.0にバージョンアップしたが効果は無し。)
NetBeans Ver.22この不具合ではエラー文がなにもでないので、たちが悪い。
JDKのバージョンを最新版に更新、管理者として実行。
さまざま試したが、解決せず。## 解決策
Exeファイルからの起動だと不具合がおきるが、Zipファイルからの起動だと正常に動作した。
Zipファイルからのセットアップの手順はこちらからhttps://qiita.c
NetBeansをZip版でセットアップする方法(Windows11向け)
# NetBeansをZip版でセットアップする方法(Windows向け)
NetBeansのインストーラーがうまく動作しない場合や、手動でセットアップしたい場合、Zip版を使用することで解決できます。この記事では、Zip版のNetBeansをWindows環境にセットアップする手順を詳しく解説します。1. Zipファイルの解凍
解凍先の選択
まず、NetBeansを配置するフォルダを選びます。以下の点に注意してください:パスに日本語やスペースを含めないこと。
管理者権限を必要としないディレクトリであること。
例として、C:\NetBeansフォルダを作成します。## 解凍
ダウンロードしたZipファイルを右クリックします。
「すべて展開」を選択します。
解凍先に先ほど作成したC:\NetBeansを指定します。
または、お好みの解凍ソフト(7-ZipやWinRARなど)を使用して解凍します。2. NetBeansの起動
実行ファイルの場所
解凍したフォルダ内のnetbeans\binディレクトリに移動します。## NetBeansの起動
netbeans64.ex
[Java]String型の配列をint型の配列に変換する
# はじめに
ネット上のスキルチェック問題などを解いていてよく出くわすのでメモがわりに。# 問題
“`
“123456”
“`
という文字列型の数値の入力を
“`
[1, 2, 3, 4, 5, 6]
“`
と、数値型の配列に変換する。
# 解決方法
“`java
// 問題で与えられる入力
String input = “123456”;// Stringの文字列で入力を受け取る
String[] strArr = input.split(“”);// int型の配列に変換
int[] numArr = Stream.of(strArr).mapToInt(Integer::parseInt).toArray();System.out.println(Arrays.toString(numArr)); // [1,2,3,4,5,6]
“`
# おわりに
streamは中間処理をよく忘れるのでメモメモ。
H2コンソールでデータベースの新規作成ができなかった時
# H2コンソールで新規データベースの作成ができなかった時にやったこと
備忘録
Windows
データベースをjavaでいじる練習をするときに
H2 Consoleでいつものように
jdbc:h2:tcp://localhost/~/〇〇で接続を押して新しいデータベースを作成しようとしたら
![タイトルなし.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884251/a04747b2-474e-8dfb-5a3a-3aa5898498b2.jpeg)
警告文が出てきて作れなかった。前は作れたのになぜなんだ・・・
とりあえずデータベースが作れないと進められない!分からないなりに調べてみると黄色いアイコンの
H2 database Engine ってやつで新しくデータベースを作れるみたい
![イトルなし.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884251/d6a60f30-6d76-fa5b-
VScodeプラグイン 各言語おすすめ
VScodeの拡張機能について各言語ごとにまとめる
## 共通
### Japanese Language Pack
日本語化するための言語化パック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/dab28482-ae62-81f6-c8c9-d89dad705f12.png)### Code Spell Checker
スペルチェック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/b106fc87-20c2-9cf9-b235-b6c52f836d0e.png)### vscode-icons
アイコン表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/48d74c47-fa84-433c-461b-f448ab0c9157.p
初めてのC++ ~JavaとC言語との違い~
## はじめに
この記事は、
**初めてC++を学ぶ方**や、**既にJavaやC言語を学び、次にC++を学ぶ方**
に向けて作成しました。C++の基礎を学び、JavaやC言語と比較しながらその特徴を理解していきます。
JavaやC言語の基礎知識がある方は、**これらを比較しながら学ぶことで**、より分かりやすく理解できるでしょう。
まだC言語を学習していない方は、以前に書いた[JavaとC言語を比較した記事](https://qiita.com/jp_paypay/items/fe322db0b97ea5fc02c9)を参考にすると、理解が深まると思います。この記事では、詳しいコードの説明には触れていませんので、興味がある方はぜひご自身でさらに調べてみてください。
## C++とは?
C++は、C言語を基盤にして開発された強力なプログラミング言語で、オブジェクト指向やジェネリックプログラミングの概念を取り入れた多重パラダイム言語です。
>マルチパラダイムプログラミング言語とは複数のプログラミングパラダイムに対応するプログラミング言語の総称です。
マルチパラダイムプロ
Tomcatのデフォルトはリクエストパスに%2fを含むと400を返す
> encodedSolidusHandling
> When set to reject request paths containing a %2f sequence will be rejected with a 400 response.
>
> https://tomcat.apache.org/tomcat-10.0-doc/config/http.html より抜粋よって、“`http://localhost:8080/hoge/%2F“` のようなURLにアクセスすると`@RestController`に辿り着かずTomcatが400を返す。
`http://localhost:8080/foo?hoge=%2F` とかクエリで渡す分にはOK。
AndroidアプリにUnity as a Libraryを導入する
## きっかけ
弊社で運用中のアバターを介してビデオ通話ができるSNSアプリがすべてUnityで実装されており、UI/UXのカスタムが非常に難しい状況でした。
そこでUaalを導入し、ビデオ通話中のアバターの表示やプロフィールアバターの表示等はUnity、それ以外のSNS機能やサーバーとの通信はネイティブで行うことで役割分担を進めようと方針が決まりました。## Unity as a Libraryとは
>Unity as a Libraryとは、ゲームエンジンUnityで開発した機能をAndroidやiOSのNativeアプリにモジュールとして組み込む技術です利用用途として、例えば3D描画のあるSNSアプリを作りたいとなったとします。Unityは3D描画部分の開発に強いですが、SNS部分は弱いです。逆にNativeはSNS部分の開発に強いですが、3D部分はそこまで強くありません。そのようなときに、Unity as a Libraryを使うと、3D部分は3Dに強いUnityで作り、SNS部分はNativeで作ることが可能になります。
このように、Unityが強い部分はUnity
Azure Functions を Azure Container Apps にデプロイする 2 種類の方法の比較について
昨日、「[Azure Container Apps に対して Java Azure Function on Linnux Container をデプロイ](https://qiita.com/yoshioterada/items/0ef6c1a0ffd65bf3cace)」というエントリを記載しました。
エントリ中に「統合された Azure の管理ポータルを使用」と記載しましたが、これが何を意味するのか、そして今までと何が違うのかを明確にするために、本エントリで今までとの違いとメリットについて記載したいと思います。
* 旧来の方法: `az containerapp create` で作成
* 新しい方法: `az functionapp create` で作成## 旧来の方法: `az containerapp create` で作成
Azure Container Apps は Azure のコンテナ実行環境の一つとして提供されています。そこでコンテナ化されたサービスであれば任意のサービスを動作させる事ができます。
その意味で、今までも Azure Functions
【Java & Spring】オリジナルのバリデーターを作成しよう
## 目標
ユーザーの入力した値が、電話番号かどうかを判断するバリデータ(@PhoneNumber)を作成する。
ここでは入力値が「0~9と-のみ」の場合、電話番号と判断する。## 実装手順
- アノテーションクラスを作成する。
- バリデータークラスを作成する。
- バリデーションを使用する。
## 手順 1: アノテーションクラスの作成
まず、アノテーションを作成します。このアノテーションを利用して、入力値が電話番号かどうかを判定します。
“`java:
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java
Java コードの基本
## Javaのコードの構成について
“`java
class Ex1_03_2 { //クラスブロック
public static void main (String[] args) { //メソッドブロック(命令文は基本ここに記述)System.out.println(“Hello World!! Error is cleared!!” );
}
}
“`## 変数と定数について
### 変数
変数は、値の型によって使い分ける必要がある。“`
整数 (±128) 専用の変数には byte
整数 (±3万2千) 専用の変数には short
整数 (±21億) 専用の変数には int
整数 (±900京) 専用の変数には long小数点(doubleより厳密さに欠ける)専用の変数には float
小数点専用の変数には double1文字専用の変数には char
文字列専用の変数には String論理値専用の変数には boolean
“`※変数宣言と代入を同時に行うことを**初期化**という。
`int teika = 1000;`
Javaの準備
## JDKのインストール(AdoptOpenJDK)
IDEであるeclipse(Pleiades All in One)を使用してダウンロード&インストールする。
※IDEとは統合開発環境という意味で、エディタや実行環境、その他機能が含まれている。VSCodeもそう。
※Pleiades All in Oneはeclipseの上位互換で「日本語設定」、「環境変数設定」、「その他設定」が組み込まれている。## eclipseの準備
1. ビューをパッケージ・エクスプローラーだけにする
2. ビューでコンソールを追加
3. パッケージ・エクスプローラーで「Java プロジェクトの作成」を選択し、作成
4. srcでファイルをインポート > 一般 > ファイル・システム
## 実行方法
右クリックで以下を選択