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

JAVA関連のことを調べてみた2022年11月06日
目次

IntelliJ IDEA (Java) & WSL2 開発環境構築(2022.11)

# なぜ IntelliJ IDEA & WSL2 なのか

1. VS Code や Eclipse ではなく IntelliJ IDEA で開発したいため
– Java の開発体験が良いと複数人から聞いている
2. Windows 上ではなく使い慣れた WSL2 上で開発したいため
– PowerShell? Git BASH? ご冗談でしょう?

少し検索したんですが絶妙に参考になる記事が存在しなかったため書き起こします。

:::note warn
極端に動作が重い現象が発生しており、原因調査中です。Indexing 及び Code Analysis が重いような気がしています。
現状 IntelliJ IDEA & WSL2 は選択肢に入らない可能性があります。公式サイトでは WSL2 上で開発できると謳っているのですが……。
:::

https://stackoverflow.com/questions/15991561/intelli-j-idea-takes-forever-to-update-indices

## 前提

WSL2 は有効化されてお

元記事を表示

HTTPURLConnection で Jenkins を shutdown する

https://qiita.com/nururuv/items/b269af6ac5ac472ceab1
https://qiita.com/satosystems/items/ad49cefa837e80c5083b
https://qiita.com/naginx/items/21e77c67f02a1ae65a29
HttpURLConnection timeout settings
https://stackoverflow.com/questions/2799938/httpurlconnection-timeout-settings

“`java
URL url = new URL(“http://example.com”);
URLConnection conn = url.openConnection();
conn.setRequestProperty(“Authorization”, “Basic ” + Base64.encodeToString(“username:password”.getBytes(), Base64.NO_WRAP));
// conn

元記事を表示

Junit4 の framework で 複数テストを行う

## Junit4 の framework で遊んでみた

[このレポジトリ](https://github.com/junit-team/junit4/tree/main/src/main/java/junit/framework) に、Junit3 ライクなテストライブラリが入っている。しかし、このライブラリでは複数テストの実行は行えなさそうなので、それを実現してみた(tearDown や setUp関数のような関数を見れば、カスタマイズ向けなライブラリな感じもしなくはないが・・・)。

ここでは、test から始まるメソッドでテストを複数個行えるようにコードの改造を行なった。以下のコードが動くようになるのが目標。

“`diff_java
import junit.framework.Assert;
import junit.framework.TestCase;
import junit.framework.TestResult;

public class Sample {

public static class MathTest extends TestCase {

元記事を表示

gradle init で作ったプロジェクトをEclipseにインポートするとテストクラスがバージョン不一致エラー

# 事象
gradle init でJavaプロジェクトを作成しEclipseにインポートすると、spockのテストクラスでエラーが出たのでこの対応記録です。
依存関係のgroovyバージョンとEclipseのgroovyバージョンを合わせることで解消できました。

# 環境

* 環境変数のgradleバージョン
“`bash
$ gradle -v

————————————————————
Gradle 7.5.1
————————————————————

Build time: 2022-08-05 21:17:56 UTC
Revision: d1daa0cbf1a0103000b71484e1dbfe096e095918

Kotlin: 1.6.21
Groovy: 3.0.10
Ant: Apache Ant(TM) version 1.10.11 com

元記事を表示

Junit4 で どうしても アノテーションなしでテストしたい場合 (Maven, Gradle などは未使用)

## JUnit4 でどうしてもアノテーションなしでテストしたい場合
ここでは、Maven や Gradle なしで 素のJava で、アノテーションなしで Junit を使うコードを書きます。
Junit4 の内部構造を知る上で、ライブラリの使い方が載っていなかったので、記事にしました(コメントを読めば分かるんですが・・・)。

まずは、[Junit4 の src/main/java](https://github.com/junit-team/junit4/tree/main/src/main/java) の下の `junit` フォルダをプロジェクトの配下に置きます。
そして、テストを行いたいファイルで まず TestCase を継承したテストクラスを作成します。

“`java
import junit.framework.Assert;
import junit.framework.TestCase;
import junit.framework.TestResult;

public class Hoge {
public static class HogeTest

元記事を表示

入力した約数を全部列挙するプログラム 線形探索と改良版の2パターン(Java)

最近約数を全部列挙するプログラムをjavaで書く方法を2通り思いついたのでそれを書いていきたいと思います。(今後自分が競プロとか参加した時にどこかで使う機会もありそうだなと思ったのでメモとしての役割もありますが)
# そもそも約数って何?(一一”)
数学において整数 N の約数とは、N を割り切る整数またはそれらの集合のことである。(wikipediaより)

https://ja.wikipedia.org/wiki/%E7%B4%84%E6%95%B0

約数って何?って聞かれたときにこう答えられたらかっこいいですね。僕は「6÷2って整数で割り切れるよね?じゃこの時2は6の約数なんよね」といったノリで答えてしまいそうな気がします。
プログラム的には、数字a,b(0 < aかつ0 < b <= a)があり、a%b == 0 になる時bはaの約数と言えますね。 これを頭に入れてとりあえず組んでいきます。 # パターン1:とりあえず線形探索 ```Java:Divisor.java import java.util.*; public class Divisor { public

元記事を表示

【Java SE11 Gold】コンパイルエラーと実行時エラーの見分け方

## 前書き
:::note info
この記事は約5分で読めます
 Javaの基礎を習得している方向けの内容となっております
:::

Java Goldの勉強中に

「これはコンパイルエラーなのか?」「文法ミス以外にも結構コンパイラーでチェックしてくれるんだ!」

とコンパイルエラーのことで理解するのに時間がかかっていたので、今回は

コンパイルエラーと実行時エラーの違いと見分け方について解説していきます

勉強する中で疑問に思ったことや理解できなかったことを記事にして、

他の人や未来の自分が見返せるようにしていきたいと思います。

## 違い
エラーには、大きく分けて2種類あります。

1. コンパイルエラー
1. 実行時エラー

まず最初は、この区別をしっかりつけることが重要になります。

__コンパイルエラー__
>プログラミング言語で記述されたソースコードを機械語のコードに変換(コンパイル)する際に、何らかの致命的な問題が発生して失敗・中断すること。主な原因はプログラムを記述する際の記述ミスによるものが多い

__実行時エラー__
>コンピュータプログラムの実行時に発生す

元記事を表示

Mac の Homebrew で複数バージョンの Java を利用する

# 概要

Mac の Homebrew で複数バージョンの Java を利用するときのメモ。
なお、複数バージョンの Java を利用する方法としては jEnv を使う手もある。しかし毎回なにで Java を入れているのか忘れて「Homebrew かな?それとも別の何か…?」と混乱するので、もう Homebrew を使うことにした。

# 既存の Java をアンインストールする場合

Mac から既存の Java をアンインストールしたい場合は以下のようにする。
公式では以下のコマンドが推奨されている。

“`bash
$ sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
$ sudo rm -fr /Library/PreferencesPanes/JavaControlPanel.prefPane
$ sudo rm -fr ~/Library/Application\ Support/Oracle/Java
“`

しかしこれだけでは JDK までは削除できない。
以下のコマンドで場所を確認

元記事を表示

#5 Springで画面の入力値を受け取り表示する

# #5 Springで画面の入力値を受け取り表示する
今回は画面から入力された値を別画面に表示していきたいと思います。

# 前回まで
今回はH2データベースを利用しますが、必要な設定は前回の記事を見てください!

https://qiita.com/Jackoguro/items/25ea687b526da1b4267d

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5

2. 依存関係
依存関係は前回の記事と一緒です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/5f49ffae-5b2a-5ccf-5357-ff8a7e2a6b4e.png)

# 成果物
![image.png](https://qiita-image-store.s3.ap

元記事を表示

未だにNPEを出すエンジニアが反省する備忘録

Javaにおける[NPE(Null Pointer Exception)](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/NullPointerException.html)は「nullのオブジェクトを使おうとしてるぞ」という例外です。例えば`myNote.getLines()`という文はコンパイル時にエラーを出しません。ただ、`myNote==null`の時に`null.getLines()`を実行することになり「nullにgetLines()なんてメソッドはない」という原因でNPEが投げられます。

Javaの参照型オブジェクトは全てnullが入りうるのですが、それを利用すると例外が出ます。危ない。「[null安全](https://atmarkit.itmedia.co.jp/ait/articles/1803/15/news012.html)」という言葉があるくらいですから、丁重に扱うべきでしょう。

nullを安全に扱う方法や仕組みは色々ありますが主に[Optional](https://docs.oracle.

元記事を表示

#4 Spring BootでH2 DataBaseを利用する

# #4 Spring BootでH2 DataBaseを利用する
Spring BootでH2 DataBaseを利用して簡単なプログラムを作成する前段階として、この記事では接続設定、テーブル、挿入するデータの作成を行いたいと思います。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 構築環境
1. バージョン
Spring Boot ver 2.7.5

2. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/33a68c11-81eb-9629-3002-e54230e0b285.png)

:::note
**Spring Boot DevTools:** Webアプリケーションを自動で再起動してくれる
**JDBC API**, **Spring Data JDBC:** JDBCを使用してSQLを実行でき

元記事を表示

Excelワークシートにセルの罫線を追加・削除する方法(Java)

Excelでは、罫線は個々のセルまたはセル範囲の周囲に描かれる線です。この罫線は、グリッド線とは異なり、既定ではセルに適用されません。場合によっては、Excelのワークシートで目立たせるために、特定のセルに罫線を追加する必要があることがあります。この記事では、無料の[Free Spire.XLS for Java](https://jp.e-iceblue.com/introduce/free-spire-excel-for-java.html)を使用して、Javaで**Excelのセルの罫線を追加または削除する方法**について説明します。

– **[Excelワークシートのセルにボーダーを追加する](#excelワークシートのセルにボーダーを追加する)**
– **[Excelワークシートのセルの罫線を削除する](#excelワークシートのセルの罫線を削除する)**

## 【依存関係の追加】
> **この方法は、無料のFree Spire.XLS for Javaが必要ですので、先にjarファイルをインポートしてください。**

### 1. Maven

Maven を使用して

元記事を表示

Lucene がやっていることをまとめてみた。

## Lucene のソースコードを読んでみました。

Java の勉強をしたいと思って、Lucene の ソースコードを読んでみました。簡単に言えば、下のコードの流れのソースコードを1つ1つ拾った感じです。

“`java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.io.IOException;
import java.io.File;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.codecs.simpletext.SimpleTextCodec;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field.Store;
impo

元記事を表示

static修飾子についての覚え書き

# はじめに
Javaの修飾子に関しての覚え書きです。
この情報は不正確かもしれないのでご了承ください。

# static修飾子
static修飾子つけたメゾッドは、Processingでいう関数のようなものになる。
つまり、staticなメゾッドは呼びだすために、わざわざインスタンスを生成する必要がない。
## Processingのメゾッド、関数
Processingにおいては、「クラスメゾッド」と「関数」は区別されており、関数はクラスの外に独立して記述できる。以下が実際の例
“`java:Exam.pde
class Exam{

public void methodA(){ //これがクラスメゾッド
println(“Example1”);
}
}
“`
“`java:methodA.pde
public void methodA(){ //これが関数
println(“Example2”);
}
“`
以上2つを呼び出すときは以下のようにする。(そもそもProcessingでは、Javaにおけるメインメゾッドが「setup関数」

元記事を表示

機械学習、Java、GridDBを利用した不正取引検知

今日、金融の世界では、金融データが新しい通貨となっています。しかし、ますます拡大する金融データを従来の統計的手法で処理することは難しくなってきています。機械学習は、企業価値や株価、あるいは金融詐欺の検出といった形で金融データを予測するプログラムの作成を可能にする一連のテクニックとモジュールを提供します。

本稿では、クレジットカード決済を利用したお客様の不正取引を検知することができる決定木の作成について説明します。本レポートでは、Javaプログラミングを用いた決定木の実装を取り上げます。この記事ではまず、機械学習アルゴリズムの主な要件について説明します。次に、データセットとその主な構成要素について説明します。その後、決定木を使って決定木を実装を行います。最後に、GridDB の read、write、store メソッドを実装し、展開とテストのためにデータを保存しています。

[ フルソースコードはこちら ][1]

## 必要条件

Weka 3.9: weka.jar ファイルをダウンロードし、以下のパスに配置します。
/usr/share/java/.

GridDB 4.6:イ

元記事を表示

eclipseとmavenとspring ざっくり説明

java bronze合格して開発者を目指し始めた初心者向けの説明

今までプリミティブ型の最大桁数くらいしか習ってなかったのにいきなりいろんな用語でてきてわかんないよ!っていう人向け

_______

ビルド

javaアプリケーションを作成するには、「ビルド」という手順を踏まなければいけません。

「ビルド」という手順を容易に済ませてくれるのが「ビルドツール」です。
_______

maven

mavenはビルドツールです。
mavenの場合、ビルドの設定を記載するファイルはpom.xmlになります。

_______

spring

springはjavaのソースファイルを書くのに役立つフレームワークです。
(cssのフレームワーク「Bootstrap」のように、おまじない入れるだけで簡単に実装できたりします。)
利用するにはビルドツールの設定ファイルに記載が必要です。

_______

eclipse

eclipseにstsをいれると、プロジェクトの新規作成からspringプロジェクトが選べるよ

元記事を表示

Atcoder 競プロ典型90問 【004 Cross Sum】 Javaで詰まった話

こんにちは、[Kuni](https://qiita.com/kuniengineer)です。現在Javaを学習中で、Atcoderでコーディング力を高めているところです。
そこで[競プロ典型90問 004-CrossSum](https://atcoder.jp/contests/typical90/tasks/typical90_d)において、TLEが続いてしまい詰まったので、共有します。

# TLEのプログラムとACのプログラム

TLEとなってしまったプログラム

“`java
import java.util.*;

public class Main {
public static void main(String[] args){
//標準入力受け取り準備
Scanner scanner = new Scanner(System.in);

//Intで読み込み
int H = scanner.nextInt();
int W = scan

元記事を表示

IBM Cloud® Code Engine に超シンプルなJava WARアプリをibmcloud CLIからデプロイする

# 概要

1. WAR を作成
1. Dockerfile を作成する
1. Code Engine にデプロイする

# WAR の準備

サンプルとしてこんなWebアプリを用意しておきます。
今回はJSPを配置しただけのものです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110265/7b1e0289-c1f7-18c2-2fdb-118b8f35a4e3.png)

“`jsp:index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>




Hello

<%=new java.util.Date()%>

  1. OK
元記事を表示

Spring Cloud FunctionでAzure Functionsアプリ

# はじめに

Spring Cloud Functionとは、関数(Function)によってビジネスロジックを実装し、実行環境に依存せず、同じコードでWebエンドポイント、ストリーム処理、タスクを実行できるようにするフレームワークです。
AWS LambdaやAzure Functionsなどのサーバーレス環境で動作させることができます。
要はSpringの便利機能を使いながらFunction開発できますというシロモノです。

https://spring.io/projects/spring-cloud-function

この記事ではSpring Cloud Function × Azure Functionsを試してみます。
Mavenを使っているサンプルが多かったので、Gradleでプロジェクト作成したいと思います。

https://learn.microsoft.com/ja-jp/azure/developer/java/spring-framework/getting-started-with-spring-cloud-function-in-azure

元記事を表示

【mybatis】接続先DBをSQLの内容等で振り分け【Java, Spring】

# 接続先DBをSQLの内容等で振り分け
### 概要
・負荷分散、データ分割などの理由で接続先のDBを振り分けたい
・org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource を利用
・MyBatis のSQL実行をインターセプト

## 環境
・SpringFramework 4
・mybatis 3.2
・mybatis-spring 1.2
・mysql (jdbc)

## 構成
・Source/Replica (Master/Slave)
・デフォルトは Source の方に接続、特別な場合に Replica の方へ接続するなどコードで色々設定が可能
・インターセプターで接続先を設定する

## コード
### DynamicDataSource
“`java
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

public class DynamicDataSource extends

元記事を表示

OTHERカテゴリの最新記事