JAVA関連のことを調べてみた2022年05月09日

JAVA関連のことを調べてみた2022年05月09日

JDK付属の$JAVA_HOME/lib/security/cacertsのデフォルトパスワード

JDK付属の`lib/security/cacerts`を、`keytool`で操作する際、パスワードを要求される場合がある。デフォルトのパスワードは`changeit`である。

変更するには、以下の通り。

“`shell
% keytool -storepasswd -cacerts
Enter keystore password: <-- 'changeit'を入力 New keystore password: Re-enter new keystore password:

元記事を表示

【JAVA】ただマウスポインターを動かすだけのプログラム

# きっかけ

マウスポインター動かすプログラムを定期実行しておけば人がいるように見せらえるのではないか?
ではプログラムの勉強で作ってしまおうと思いました。

# 必要な環境

EclipseのJAVAが使える環境なら問題ないと思います。
またWindows前提となります。定期実行はタスクスケジューラで行います。

:::note warn
詳細な手順などは省いているため、プログラムしたことがある方を前提で記載します。
:::

# 作業順序

大まかな作業順序の流れは以下になります。

+ マウスポインターを動かすプログラム作成(JAVA)
+ 実行可能jarを生成
+ jarを動作させるbat作成
+ タスクスケジューラにbat登録

## マウスポインターを動かすプログラム作成(JAVA)

以下がソースコードになります。
作成したらデバック実行して動作するか確認してみてください。
引数は「3」(秒)がちょうどよいかなと思います。

マウスポインターソースコード

“`java
import java.awt.AWTEx

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(SMA6,SMA12,SMA24編)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

【Java】2進数、8進数、16進数の表記方法

2進数、8進数、16進数の表記方法についてまとめる。

**表記方法**
“`
2進数 :先頭に0b若しくは0B記載 (例 10進数:327 = 2進数:0b101000111)
8進数 :先頭に0始まりで記載   (例 10進数:327 = 8進数:0507)
16進数:先頭に0x若しくは0X記載 (例 10進数:327 = 16進数:0x147)
“`

**実際の記載例**
“`java:Sample.java
int bin = 0b101000111; // 10進数:327
int oct = 0507; // 10進数:327
int hex = 0x147; // 10進数:327
“`
表記が変わっているだけなので、
この状態でも四則演算に使用することが可能です。
“`java:Calc.java
System.out.println(0b101000111 + 0507 + 0x147);
// 10進数:327 + 327 + 327 = 981
“`

使う機会はほとんどないと思うが、
10進数を2進数、8進数、1

元記事を表示

Javaの変数と型名

現在Javaを独学で学習中。
備忘録のために色々と記述していこうと思います。

## 型名

Javaで変数を代入する場合は、そのデータにあった型名に収める必要がある。
以下はその一覧。

|種類 |型名 |データ |
|————–|——–|———————–|
|整数      |byte |-128 〜 128まで    |
| |short |-32,000 〜 32,000まで        |
| |int | -21億 〜 21億まで |
| |long |-900京 〜 900京まで |
|小数点数   |float| 小数(doubleより厳密さに欠ける)|
| |double| 小数       |
|文字   |char |1文字のみ  |
| |String | 文字列  

元記事を表示

【Java】varを使用した変数宣言

Java 10から登場したvar(型推論)について簡易的にまとめる。

**導入された目的**
定型挿入文を減らし、コードの可読性を向上させるため。

**使用例**
“`java:varSample.java
// var型で宣言されている内容は、コメントの内容と同義である。
var num = 10; // int num = 10;
var str = “Hello!”; // String greeting = “Hello!”;
var array = new int[3]; // int array[] = new int[3];
var object = new Object(); // Object object = new Object();
var bool = “Java”.equals(“Java”); // boolean bool = “Java”.equals(“Java”);
“`
var型とは明示的に型宣言を行わなくても、右辺の内容から型を推測して

元記事を表示

Play Frameworkで画面表示が遅い原因と対処

# はじめに

※別のブログに投稿していた記事をQiitaに投稿し直しています。(元の記事は削除予定)

# 環境

Play Framework 2.2.6
macOS Big Sur 11.5.2

# 現象

Play Frameworkのアプリをローカルで起動すると、画面表示が遅い。
Chromeで確認したところ、“`Cache-Control“`の値がローカル環境と本番環境とで異なる。

* ローカル環境

「Cache-Control: no-cache」になっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627583/082c9817-70f0-36f0-28de-b4923382811b.png)

* 本番環境

「Cache-Control: max-age=3600」になっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627583/

元記事を表示

【Java】matchesメソッドについてのメモ

## 概要
String型の文字列をチェックする際に必要なmatchesメソッドの使い方を、学習のメモとして記録しておこうと思う。

※今後も情報を追記します。

## 部分一致
“`Java
String password = “AaBbcC123”;

//パスワードに数字を含む
password.matches(“.*[0-9].*”);

//アルファベットの小文字を含む
password.matches(“.*[a-z].*”);

//アルファベットの大文字を含む
password.matches(“.*[A-Z].*”);
“`
結果、
“`Java
true
true
true
“`

## 完全一致
“`Java
String password = “AaB123”;

//パスワードが5文字で数字のみ
password.matches(“[0-9]{5}”);

//パスワードが6文字でアルファベットと数字のみ
password.matches(“[a-fA-F0-9]{6}”);
“`
結果、
“`Java
false
true
“`

## 参考

元記事を表示

【Java】ポリモーフィズム(Polymorphism)

本稿ではポリモーフィズム(多態性)の説明については割愛する。
具体例を用いて動きの概要をまとめる。
## 具体例
準備するクラス

“`mermaid
classDiagram
Animal <|-- Dog Animal <|-- Cat Animal : -int speed Dog : -int speed Cat : -int speed class Animal{ +Cry() +Run() } class Dog{ +Cry() +Run() +Eat() } class Cat{ +Cry() +Run() } ``` **Animalクラス(親クラス=スーパークラス)** ※abstractの説明も割愛する。 ```java:Animal.java public abstract class Animal { private int speed = 5; public abstract void Cry(); public void Run() { System.out.println(speed + "km/hの速度で逃げ出した。"); }; } ```

元記事を表示

ポートフォリオ作成の過程で学んだ技術を振り返る ~Spring Boot編~

# はじめに
Javaのポートフォリオ作成の過程で学んだフレームワークやライブラリ等を、サンプルコードをもとに一言で説明したり要点をまとめてみました。
本記事は自身の振り返りのために作成した備忘録なので、第三者向けの説明が不十分な箇所があるかと思います。ご了承ください。

# Spring Boot
JavaでWebアプリを作成するためのフレームワーク。
アプリ(プロジェクト)作成時に使いたいフレームワークやライブラリを選択すれば、利用設定なしに最適な環境を構築できる。あとは必要に応じてConfigクラスを作成したり、XMLファイルに外部ファイルとの依存関係、プロパティファイルにDBアクセスの設定等を記述する。

## Spring Tool Suite(STS)
Springベースのアプリケーション開発を行うために提供される開発ツール。
https://spring.io/tools

## MVCアーキテクチャ
Webアプリケーションを設計・作成するときの考え方。

表1 MVCとその役割
|名前|役割|対応するファイル|
| —- | —- | —- |
|Mode

元記事を表示

Doma2でMergeを利用する

Doma2でMergeを利用することがあったので、メモとして残しておきます。

といってもそれほど難しいことはなく、まずはDaoインタフェースを用意します。

“`java
@Dao
@ConfigAutowireable
public interface InventoryDao {
/**
* 入荷予定をもとに在庫数を更新する。入荷予定に対する現在在庫が存在しない場合は、在庫データを作成する。
* @param dt 入荷予定日
* @return 挿入・更新件数
*/
@Update(sqlFile = true)
int mergeInventoryUsingReceipt(LocalDate dt);
}

“`

ここで注意するのは、`@Update`アノテーションを付与すること、戻り値を`int`にすることです。この戻り値は更新・挿入・削除した件数になります。

あとはこのDaoインターフェースに対応するMerge文を用意すればよいです。

“`SQL
MERGE inventory AS I
USING (
SELECT *
F

元記事を表示

ガチャで使う乱数を考えてみる

前回の投稿「[Javaの乱数生成器について速度面から調査してみる](https://qiita.com/penguinsan/items/52a7b76e5570f7cf7e15)」でそれほど長周期が必要ないならThreadLocalRandom(SplitMix64)でいいかな、なんて書いたものの、そもそも「長周期が必要ない」もしくは「長周期が必要」ってどういうとき?ってなったのでガチャを例に考察してみます。

# 周期とは
ThreadLocalRandomに使われているSplitMix64などの疑似乱数には内部状態があり乱数を生成するごとに内部状態を更新していきます。
同じ内部状態から生成される乱数は同じになるので、内部状態が1周して同じ値に戻ってくるとそれ以降はまた同じ乱数の系列が出力されることになります。これが周期です。
ちなみにThreadLocalRandomの周期と内部状態は[Java17のAPIドキュメント](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/random/pa

元記事を表示

Java17でGradleビルド時に「Unrecognized VM option ‘MaxPermSize=2048M’」のエラーが発生した

備忘録です。

## 事象
Java17に上げてGradleでビルドをしようとしたら以下のエラーが発生した。

“`bash
Unrecognized VM option ‘MaxPermSize=2048M’
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
“`

## 原因
gradle.propertiesに設定していた`-XX:MaxPermSize`が[Java17でJava Optionから削除](https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html#removed-java-options)されたため。

“`text:gradle.properties
org.gradle.jvmargs=-Xms2048M -Xmx5120M -XX:MaxPermSize=2048M
“`

## 解決方法
gradle.prop

元記事を表示

保存した4本値チャートデータの終値と、PUSH APIで受信したチャートデータをマージする

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

5分足の時刻を列挙する

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

Minecraft 1.18でマルチツールを作れちゃった話【TagKey

# はじめに
1.18でマルチツールを作る際に躓いていたのになんかあっさり出来てしまったので、同じことをしたい方がいらっしゃれば自由に流用してください。

# 開発環境
今回は以下の環境でやっていきます。

– Windows 10
– Eclipse Temurin JDK with Hotspot 17.0.2
– Minecraft 1.18.2
– MinecraftForge 40.0.3
– IntelliJ IDEA 2021.3.2

# BlockStateについて
ファイル名]

BlockStateの中に「#minecraft:mineable/pickaxe」ってのがありますね。
最近のMinecraftはデータパックなるものに対応したので簡単なModならJavaの知識無しで作れるようになっ

元記事を表示

JPAのサンプル

# 構成
– JsfTest
– src
– main
– java
– bean
– IndexBean.java
– InputBean.java
– entity
– SampleEntity.java
– dao
– SampleDao.java
– service
– SampleService.java
– resources
– application.properties
– webapp
– index.xhtml
– next.xhtml

元記事を表示

LWJGL3で文字を描画する

# 注意
この記事内に登場するコードはすべてMITライセンスで公開されています。
完成品はGithubで公開しているので、解説なんて必要ないという人は[レポジトリ](https://github.com/Tosirukun/lwjgl3-FontRender/tree/main)へGo!

# アプローチ

Graphicsを使用してBufferedImageに文字を描画し、それをテクスチャとして登録し、ポリゴンに張り付ける。

## BufferedImage (ByteBuffer)の錬成

実際にはBufferedImageをByteBufferに変換します。

“`java
public static ByteBuffer getTextTexture(String text, Font font, Color fontColor) {

//まずは描画後のテキストのサイズを取得します
Canvas canvas = new Canvas();
FontMetrics metrics = canvas.getFontMetrics(font);

元記事を表示

WinMergeのHTML形式レポートファイルから差分をプログラム上で取得する方法(Javaによる例あり)

 エビデンスとしてWinMergeでHTML形式のレポートファイルを作成することがあると思います。
 この記事では出力したHTMLファイルから差分となった行をプログラム上で取得する方法について説明します。
WinMergeによるHTML形式のレポートファイル出力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/846337/7230ab05-5efc-1d57-a87c-35cc4ea7892f.png)
 レポートファイルの差分を比較する部分は4列のtable要素で構成されてます。
WinMergeにより出力されたHTMLレポートファイル
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/846337/e2c153b5-b362-923b-8d74-91f0700729f6.png)
 1-2列目はWinMergeの左側、3-4列目は右側です。それぞれ行番号の列と比

元記事を表示

複数の JAVA_HOME と PATH 環境変数の設定切り替えと確認

対象者: Windows Java 開発者
(WSL、Docker などの仮想環境除く)

# JAVA_HOME の設定が不要な人

最近は複数バージョンの Java を使用して開発する機会が多くなってきましたが、[Pleiades All in One Java](https://mergedoc.osdn.jp/) の Java Full Edition には、主要な LTS バージョンの Java が付属設定済みのため、JDK のダウンロードやインストールおよび設定が不要で、

:::note info
Eclipse 上で使用する場合は JAVA_HOME や PATH 環境変数の設定も不要です。
:::

プロジェクト設定や実行構成で Java のバージョンを選択しておくだけで、Eclipse の実行メニューから Java メインクラスや Maven コマンドを実行したり、Gradle タスク・ビューから実行できます。

* Eclipse が使用する Java のバージョン
* Eclipse 起動 VM は eclipse.ini の -vm 指定や直下の jre

元記事を表示

OTHERカテゴリの最新記事