JAVA関連のことを調べてみた

JAVA関連のことを調べてみた
目次

JavaFX アプリの実行可能ファイル化 (Windows, Eclipse)

# はじめに
本資料では Java がインストールされていない環境で、Eclipse で開発した自作プログラムを .exe ファイルとして実行できるようにする方法を紹介しています。

## 参考資料
参考資料として紹介している記事を読んでいただくのが一番早いかと思います。もう少し丁寧に、ということでまとめ直させていただきました。

* [Qiita – JavaFX & 自己完結型パッケージでのツール作成(配布編)](https://qiita.com/ketman55/items/a954dfc2b748559f0920)

## 実施環境
* Windows 11 Pro
* Eclipse 2023-12
* e(fx)clipse 3.9.0
* Oracle OpenJDK 21
* JavaFX 21
* Launch4j 3.50

“`: Java バージョン
> java –version

java 21.0.2 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 21.0.2+13-LTS-58)
Jav

元記事を表示

継承とインターフェース

# 継承

・クラスの階層を作ることができる
・ベースクラスのメソッドやフィールドを派生クラスで再利用できる
・派生クラスはベースクラスの機能を追加したり変更したりできる

# インターフェース

・一連のメソッドの定義のみを含む抽象的なプロトコル(メソッドの実装はない)
・クラスは複数のインターフェースを実装できる
・異なるクラス間で共通のメソッドを定義できる
・異なるクラスの関連性を示すために使用される(具体的な昨日の実装に関与しない)

## オーバーライド

子クラスが親クラスのメソッドを上書きする

親クラスのabstractは絶対にオーバーライド

元記事を表示

SpringBootでH2DBへの接続方法について簡単にまとめてみる

## はじめに
自己学習でH2DBを実際に使用してみたので、SpringBootでH2データベースに接続した方法について簡単にまとめています。

## 動作環境等
macOS:13.0
Java:17
SpringBoot:3.2.4
IDE:IntelliJ(2023.3.4)
ビルドツール:Gradle
データベース:H2

## 手順
1. build.gradleに設定を記述する
2. application.propertiesにH2DBの設定を記述する
3. SpringBoot起動時に作成するテーブルを準備する
4. H2コンソールでテーブルを確認する

### 1.Build.gradleに設定を記述する
“`build.gradle
dependencies {
runtimeOnly ‘com.h2database:h2’ // #1
implementation ‘org.springframework.boot:spring-boot-starter-data-jdbc’ // #2
}
“`
:::note
#1: H2DBを使用するために

元記事を表示

StandardMIDIFileからピアノロールを表示する その2:ピアノロールの基本

StandardMIDIFileからピアノロールを表示する その2:ピアノロールの基本

加筆中

元記事を表示

[Gmail API] Javaで送信者エイリアスを作成・更新・削除する

Gmail API v1(Java)を使用して、
Gmailの送信者エイリアスを作成・更新・削除する方法
についてご紹介します。

**送信者エイリアスとは**
メールを送信する時、送信者エイリアスからメールを送信しているように見せることができる機能です。
最初に、メール転送を設定してアクティブにしておきます。
Gmailでは、「設定」 -> 「アカウントとインポート」 -> 名前:「他のメールアドレスを追加」
から設定できます。

このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。OAuth 2.0では利用できません。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う

元記事を表示

StandardMIDIFileからピアノロールを表示する その1:SMFの解析

StandardMIDIFileからピアノロールを表示する その1:SMFの解析

今日は、MIXRecipeで使われているピアノロールについて解説してみます。

MIXRecipeはこちらです

https://github.com/syntaro/javamidimixer/releases
https://github.com/syntaro/javamidimixer/tree/main/mixrecipe

![スクリーンショット 2024-03-24 10.16.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518713/7c47b8d8-feab-8963-152d-6201bacbf284.png)

Java標準の、
https://docs.oracle.com/javase/jp/11/docs/api/java.desktop/javax/sound/midi/Sequencer.html

ではピアノロールの表示ですこし不便でしたので、SMFファイルの解析からやっていま

元記事を表示

[Gmail API] Javaで送信元エイリアスのS/MIME構成を設定・削除する

Gmail API v1(Java)を使用して、
送信元エイリアスのS/MIME構成を設定・削除する方法
についてご紹介します。

**S/MIMEとは**
電子証明書を用いたメールのなりすましや改ざん、盗聴などを防ぐための仕組みです。
セキュリティを高めるために、メールの暗号化と電子署名を行います。

このAPIは、無料版のアカウントでは使用できず、利用するには
有料版の「Google Workplace」でのアカウントが必要になります。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No||目次|
|—|—|—|
|1||[デフォルトのS/MIME構成を設定](#1

元記事を表示

SpringBootでEntityをつかってMySQL接続の基礎

# この記事はこれの続きです

https://qiita.com/waokitsune/items/f342f2f3b10df81d1679

# 概要

『テーブルのレコードの値をコンソールに表示する』のが本記事のゴールです。
**最小限のコード** かつ **超基本的な内容** となっています。

# MySQL側

『neko』という名前のスキーマ―に、『unko』という名前のテーブル。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/2e3c2e26-3bc3-af9b-ece7-b74a22155046.png)

カラムは2つのみ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/13708f76-de88-302d-9f36-cd78f28557b3.png)

あらかじめレコードが入っています。
![image.png](https://qiita

元記事を表示

初めて出会った”Trait”の魔法:あなたのコードを変える革新的な考え方

長くソフトウェアエンジニアをやってきて、大変恥ずかしながらTraitという考え方にこれまで出会ったことがなく、全く知りませんでした💦
(たまたまこれまで使ってきた言語にtraitがなかったからという言い訳)

最近Kotlinを書き始める中で、実際にTraitを使う必要に迫られたので、自分なりにTraitについて説明をしてみたいと思います。

## Traitってなに?

端的に言うと、Abstractやクラスの継承は縦方向の共通化であるのに対し、Traitとは横方向に処理を共通化するための方法です。

複数のクラスで共通して使われる処理を記述する方法として、継承はJavaの初期からある考え方ですが、traitはその後追加された考え方で、2005年のphpへの実装から始まり、Ruby, Rust, Scala,Pythonなどに導入されていったそうです。

参考:[https://en.wikipedia.org/wiki/Trait_(computer_programming)](https://en.wikipedia.org/wiki/Trait_(computer_progra

元記事を表示

フォルダの容量をツリー表示したい(Java

フォルダの容量をツリー表示したい(Java

昔からの書式で恐縮ですがJava22で作ってみました。

![スクリーンショット 2024-03-24 07.37.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518713/980e6d78-10c7-4a87-1ce4-090d604af051.png)

使用しているいくつかのライブラリは、以下から取得できますが、
フォルダブラウザなどですので、なくても動かせるようになるとは思います。

https://github.com/syntaro/javamidimixer

“`java:FolderSizeChecker.java
/*
* Copyright (C) 2024 Syntarou YOSHIDA
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General

元記事を表示

Javaの解答例:ABC085B – Kagami Mochi , AtCoder Beginners Selection

# はじめに
自分用の備忘録です。参考になれば。

# 問題文
以下のリンクを参考にしてください。
[ABC085B – Kagami Mochi, https://atcoder.jp/contests/abs/tasks/abc085_b](https://atcoder.jp/contests/abs/tasks/abc085_b)

# 解答例 自作
“`java: Main.java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

int N = sc.nextInt();
List D = new ArrayList();

元記事を表示

[Gmail API] JavaでGmailクライアントサイド暗号化(CSE)を作成・更新・削除する

Gmail API v1(Java)を使用して、
Gmailクライアントサイド暗号化(CSE)を作成・更新・削除する方法
についてご紹介します。

**Gmailクライアントサイド暗号化とは**
メールデータをGoogleクラウドベースストレージ時に転送または保存する前に
ブラウザ内で暗号化を行う仕組みです。
送信先の相手が受信するまで、メールデータは保護されます。
これにより機密データや規制対象データのコンテンツの機密性保持を強化できます。

このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。
OAuth 2.0では利用できません。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[CSEを生成](#1-cseを生成)|
||1|[スコープ

元記事を表示

Android Studioで行コメントをインデント幅に自動で合わせる

## はじめに
JavaとAndroid Studioを並行して学習しています。
Android Studioでの操作中、Javaファイルでのコメント行の設定で手間取ったので設定方法を記載します。

## 問題
コメント欄をコード入力時に自動でインデントに合わせたかった
![Untitled (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677610/120734fd-e104-b52f-8c20-60fa482610bb.png)

## 解決方法
以下の設定2つを変更し、解決しました。

### 設定1(コード整形時のフォーマットスタイル)
・設定>エディター>コードスタイルのJavaを選択
 折り返しと括弧>整形時の保持>最初の列にコメントを入れるをチェックオフ
英語の場合は
・Setteing>Editor>Code Style>Java
 Code Generation>Comment Code>Line comment at first columnをチェックオフ
![Unti

元記事を表示

[Gmail API] JavaでGmailクライアントサイド暗号化(CSE)されたIDを取得する

Gmail API v1(Java)を使用して、
Gmailクライアントサイド暗号化(CSE)されたIDを取得する方法
についてご紹介します。

**Gmailクライアントサイド暗号化とは**
メールデータをGoogleクラウドベースストレージに転送または保存する前に
ブラウザ内で暗号化を行う仕組みです。
送信先の相手が受信するまで、メールデータは保護されます。
これにより機密データや規制対象データのコンテンツの機密性保持を強化できます。

このAPIは、ドメイン全体の権限を委任されたサービスアカウントを
使用しての発行のみ利用可能です。OAuth 2.0では利用できません。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[CSE構成リストを取得](#1-cse構成リストを取得)|
||

元記事を表示

C++/Java系言語で1文字だけでコメントアウトするブロックを切り替える

# 概要

プログラミングをしていると実装の方式を試してみることがあると思います。あるいは、別の実装でうまくいくか自信のない時、今あるものはコメントアウトしておいて別の実装を試してみたり。そんな場合、今時はエディターの機能で簡単にブロックをコメントアウトしたりできますが、言語仕様をうまく使って一文字編集するだけでコードブロックをコメントアウトする小技を大昔に思いついていて今でも使うことがあるので紹介します。実装中の試行錯誤の時には便利です。

この技はC++/Java/Javascript系の、ブロックコメント`/* … */`とインラインコメント`//`がサポートされている言語で利用できます。

# ブロックを`/`の削除でコメントアウトする

以下のように書いておくと、一番最初の`/`を削除すると最初の行がインラインコメントからブロックコメントに切り替わり、ブロック全体がコメントアウトされます。

“`javascript
//*
var x = foo;
//*/
“`

先頭行が`//`で始まると、最初と最後の行がどちらもインラインコメントになり、`/*`で始まるとそこ

元記事を表示

[Gmail API] Javaでメールボックス内スレッドのラベル追加・削除、スレッドの削除をする

Gmail API v1(Java)を使用して、
Gmailのメールボックス内スレッドのラベルを更新・削除する方法と
スレッドを削除、スレッドをゴミ箱に移動したりゴミ箱から削除する方法
についてご紹介します。

**スレッドとは**
件名と宛先が同じで関連する複数の一連のメールのやりとりをまとめて表示する機能です。

**ラベルとは**
スレッドにつける印みたいなものです。
ラベルを作ることでラベル毎に整理、管理することができます

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Gmail API] JavaでGmail APIを使う](https://qiita.com/doran/items/a078e966bfd93c4b19c2)
を参照ください。
:::

本文中の引数にある「メールアドレス」の指定は、
OAuth 2.0使用の場合は「me」(自身)と指定してください。
「me」は認証されたユーザーを示します。

|No||目次|
|—|—|—|
|1||[スレッドのラベル更新・削除](#1-スレッドのラベル

元記事を表示

MIDIのSysEX(F7始まり)を処理する (Java JDK20 0xf0 0xf7)

はじめまして。
お会いできて光栄です。

手始めに、「MIDIのSysEX(F7始まり)を処理する (Java JDK20 0xf0 0xf7)」について公開してみようと思います。

OralceJavaJDKのjavax.sound.midi.MidiMessageクラスは、
SysEXシステムエクスクルーシブメッセージに対応しているとうたっています。
F0ではじまるSysEXは問題なく送信できるようです。
しかし、F7ではじまる場合、うまく送信できません。

F0 + メッセージ
F7 + メッセージ2

と送っていますが、受け止め側が、

F0 + メッセージ F7
+ ごみ

と解釈するためです。

ですので、なんとかF7を消去しておくりたいということです。

F7ではじまるMIDIMessageでは、F7をのぞいて送信しています。
ただし、JDK20の前以前のJavaでは、このやりかたではクラッシュするようです。

対処するにあたっては、以下のキーワード検索した文章を組み合わせています。
stackoverflowやQiitaなどです。動作するようにまとめられましたので、公開

元記事を表示

BigDecimal.setScaleのRoundingMode.UPがこんなに切り上がるわけがない

こんにちは。

Java、書いてますか?

今回は `BigDecimal.setScale(int, RoundingMode)` でだいぶ頭を悩ませた挙動と対策について書きます。
なんか調べてて __めちゃくちゃムカついちゃった__ のでその恨み言もあります。

ちなみに当記事ですが __事実としてこう、対策としてはこう__ 、ということを書いているだけで、申し訳ないですが理屈の深掘りはできませんでした。

:::note info
動作環境
IDE:IntelliJ IDEA 2023.3.5 (Community Edition)
OS:Windows11
Java:AmazonCorretto 21.0.1
:::

# この記事のまとめ
小数第一位を切り上げるコードを書いたよ!
“`java
// 当然 1 になるよね!
BigDecimal.valueOf(1.000000000000001d).setScale(0, RoundingMode.UP);
“`
__2になったよ!!!__

“`java
// 切り上げる前に第二位以下を切り捨てちゃおうね!
BigD

元記事を表示

break文の使い方

Javaにおけるbreakの概要をまとめます。

目次
[1.break文とは](#1-break文とは)
[2.breakの使い方](#2-breakの使い方)

# 1. break文とは
break文は、実行されると繰り返し処理を終了して、次の処理へ移ってくれる便利なものです。

以下のように記載します。

“`java
break;
“`

繰り返し処理であるfor文やwhile文の他、switch文でも使用できます。

# 2. breakの使い方
for文の中にif文を書き、ifの条件式がtrueのときに実行される処理としてbreak文を書くと、for文の条件式を全て実行せずに処理を終わらせることができます。
“`java
int num = 10;

for (int i = 0; i < 10; i++){ num -= 3; if (num < 0){ break; } } ``` 上記コードのfor文は10回繰り返す条件式になっていますが、if文の条件式とbreak文によって、実行回数が10回に満たなくとも、numが0より小さくなった場合に処理

元記事を表示

[Gmail API] Javaでユーザー情報(言語、不在通知、自動転送、POP、IMAP)を設定する

Gmail API v1(Java)を使用して、
Gmailのユーザーの設定情報を設定する方法
についてご紹介します。

設定できるユーザーの設定情報は下記の5つになります。
・言語の設定
・不在通知の設定
・自動転送の設定
・POPの設定
・IMAPの設定

**・言語の設定**
Gmailメニュー 「設定」 -> 「全般」 -> 「言語」
で設定できる内容です。

**・不在通知の設定**
Gmailメニュー 「設定」 -> 「全般」 -> 「不在通知」
で設定できる内容です。

  • OTHERカテゴリの最新記事