JAVA関連のことを調べてみた2020年04月25日

JAVA関連のことを調べてみた2020年04月25日

MacOSでSTS(SpringToolSuite)が起動しない時の対処 エラー内容 No java virtual machine is not….

MacOS Mojave でSTSが立ち上がらなかった時に実施した処理をまとめました。

#エラー内容

No java virtual machine was not found after…

STSを起動しようとすると上のメッセージが表示されて起動しません。一般的には下記3点実施すれば起動するらしい…

1.環境変数の設定
2.JAVA_JOME
3.STSの.iniファイルにJAVA_HOMEを追記

上の点に関してはこちらの記事が参考になるかもしれません。

[MacでのJava開発環境構築を通して「PATHを通す」意味を学ぶ](https://qiita.com/s_hino/items/a185deb4f9fc31c0f5e2)

自分の場合は上記3点を設定しても改善しなかったため、全部まっさらな状態からやり直したところ上手くいきました。下記手順になります。

#手順1 java(JDK?)のアンインストールと環境変数の削除
何が原因かわからなかったため、全部0からやり直すことにしました。
Mac内を確認したところ3つのjava(全部JDK?)が入っていたので、まず

元記事を表示

jenvでjava1.7(zulu7)を特定のディレクトリ配下で利用する

# jenvでjava1.7(zulu7)を特定のディレクトリ配下で利用する

## jenvインストール
“`
$ brew install jenv
“`

## jenv設定
“`
$ echo ‘export PATH=”$HOME/.jenv/bin:$PATH”‘ >> ~/.bashrc
$ echo ‘eval “$(jenv init -)”‘ >> ~/.bashrc
“`

## java1.7(zulu7)をインストール
“`
$ brew cask install zulu7
“`

## インストールされているjdkの一覧を表示する
“`bash
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
14.0.1, x86_64: “OpenJDK 14.0.1” /Library/Java/JavaVirtualMachines/openjdk-14.0.1.jdk/Contents/Home
1.8.0_241, x86_64: “Java SE 8”

元記事を表示

【覚えておくと便利!!!】Eclipseにおける継承クラスの簡易作成

## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)

– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)

– [【わかりやすく解説‼】Javaのインスタンスの使い方](https://qiita.com/ryome/items/62ba0d8395af6698053a)

– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)

事前知識として、上記リンクの内容が必要です。

## 2.スーパークラスからサブクラスの簡易作成

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

元記事を表示

【わかりやすく解説‼】Javaの継承の使い方【オーバーライドの解説あり】

## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)

– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)

– [【わかりやすく解説‼】Javaのインスタンスの使い方](https://qiita.com/ryome/items/62ba0d8395af6698053a)

– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)

事前知識として、上記リンクの内容が必要です。

## 2.継承とは

– `継承` とは、 `既に定義されているクラス` を元に、 `拡張や変更` を加えたクラスを定義すること。
– 継承の元になるクラスを「`スーパークラス`」

元記事を表示

Java8と11のversion切り替え後、確認でエラーが発生する

##前提
初めてQiita投稿します。よろしくお願いします。
現在のJavaのversionが11。8に切り替えるためpathの設定を行った。
##問題
version確認
“`java –version
“`
エラー
“`Unrecognized option: –version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
“`
##解決
ググるとコマンドが間違ってますと出てきた。
え…11これで確認できたけど…となり今度は

“`java -version
“`
で実行。すると
“`openjdk version “1.8.0_252”
“`と表示された。

逆(8→11)でpathを変え、java -versionを行ったところ、こちらも正常に表示された。
java -versionで覚えることにした。原因は…わかりません(初心者)

元記事を表示

Spring Boot + JUnit5 + DBUnitでExcelをテストデータとしたUTを行う方法

# はじめに
Spring Bootを利用したアプリケーションにおいて、
JUnit5 + DBUnitによるUTの実施方法を記載しました。

プロジェクト構成は[Spring Initializr](https://start.spring.io/)をベースとしているので、
下記を参考に、簡単に動作確認できると思います。

## インストール
動作確認にはMyBatis + Oracleを使用しました。
使用ライブラリは各環境に合わせてください。

“`gradle:build.gradle
plugins {
id ‘org.springframework.boot’ version ‘2.2.6.RELEASE’
id ‘io.spring.dependency-management’ version ‘1.0.9.RELEASE’
id ‘java’
id ‘eclipse’
}

group = ‘com.example’
version = ‘0.0.1-SNAPSHOT’
sourceCompatibility = ’12’

repos

元記事を表示

JUnitにおけるリファクタリング

# JUnitにおけるリファクタリングの意義

JUnitにおけるリファクタリングは、テスタビリティの向上が至上命題となる。
保持する状態が複雑なクラス、引数を多く持つメソッド、責務が広いメソッドなどは、
検証が難しい複雑なテスト対象となる。
他にも、実装がまだ完了していない、サービスが停止していて、テスト対象が依存している
外部Webサービスが使用できないなど、ユニットテストが実行できない状況などもある。

JUnitにおけるリファクタリングでは、こういったテストケースのテスタビリティを
改善するために、テスト対象の**振る舞い**は変えずに**内部構造**のみを変える。

## テスタビリティとは

テスタビリティとは、テストのしやすさである。
一般に、実行タイミング、実行環境、実行順序などの
外部環境に影響されるテストケースはテスタビリティが低いとされる。

## リファクタリングとは

前述の通り、リファクタリングとはテスト対象の**振る舞い**は変えずに**内部構造**のみを変更し、
ソースコードを整理するテクニックである。

> 補足:リファクタリング時の注意
リファクタリ

元記事を表示

美大生のためのプログラミング入門:直線を描く

参考:Qiita では印刷がうまくできません。プリントしたい人や PDF 化したい人は [http://gurakura.sakura.ne.jp/hellomondrian/line/](http://gurakura.sakura.ne.jp/hellomondrian/line/) を見て下さい(同じ内容です)。

# 今回と次回のセクションで目指すもの
![New York City I by Piet Mondrian, 1942.](https://uploads5.wikiart.org/images/piet-mondrian/new-york-city-i-1942.jpg!Large.jpg)
 上の画像は Piet Mondrian の作品 New York City I (1942 年)で、
[https://uploads5.wikiart.org/images/piet-mondrian/new-york-city-i-1942.jpg!Large.jpg](https://uploads5.wikiart.org/images/piet-mondrian/

元記事を表示

PostgreSQLで作成したtableの一意に識別する値を取り出す

#結論
“`
select relname,oid from pg_class
where relname not like ‘pg_%’
and relname not like ‘sql_%’
and relkind=’r’;
“`

#経緯
javaの掲示板を作成中、作成したtableの作成日時を取得したかった。
が、簡単には取得できそうになかったから、別の方法を模索。
結果、pg_classという、
DB内のテーブルやインデックスのメタ情報を管理するテーブルを使うことにした。
これにより、各テーブル固有の値を取得できた。

参考サイト
https://www.postgresql.jp/document/9.4/html/catalog-pg-class.html

#詳細
・relname:テーブルとかの名前
・oid:テーブル固有の値。重複しない。
・relkind:テーブルはr,インデックスはi、シーケンスはs、みたいな感じで識別。

これらを使い、自分が作成したテーブル固有の値とその名前だけを抽出することに成功した。

元記事を表示

JUnitにおけるルールとは

# ルールとは

JUnit4.7で追加された、JUnitの拡張フレームワーク。
JUnitでは、フィクスチャのセットアップの共通処理を抽出するための様々な仕組みがあるが、
ルールはより容易に、そして柔軟に共通処理を抽出することができる仕組みである。

特徴としては以下のようなものが挙げられる。

– 共通処理を独立したクラスとして定義できる
– テスト実行時のメタデータにアクセスできる

上記の特徴から、ルールは再利用しやすく、宣言的に記述でき、
テスト実行時の拡張を容易に行うことができる仕組みであると言える。

# ルールの実装

## ルールのお約束(ややこしい)

1. org.junit.rules.TestRuleインターフェースの実装クラスであること
2. org.junit.Ruleアノテーションもしくはorg.junit.ClassRuleを付与した
publicなフィールドとして定義すること
3. フィールドの宣言と同時にインスタンスの作成
もしくはコンストラクタによるインスタンスの生成をすること

## ルールの仕組み

RuleアノテーションとClass

元記事を表示

一度閉じた標準入力ストリーム(System.in)について

## はじめに

・標準入力でお世話になる`InputStreamReader(System.in)`について
・一度閉じた標準入力ストリームを開こうとすると、閉じたまま開かない

## 一度閉じた標準入力ストリームは開けない?

コンソールから何か入力するときにお世話になる標準入力ストリームですが、どうやら同一プログラムのなかで一度閉じた標準入力ストリームは開けないっぽい。

例えば、

“`java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {

public static void main(String[] args) {
try {
// 2回目に入るとSystem.inが閉じたままになっている
for (int i = 0; i < 2; i++) { streamTest1(); } } catch (IOException e) { e.prin

元記事を表示

【JSP+Servlet入門】ちょっと遊んでみた♬

全くの初心者なのでいい加減なこと書くかもしれませんが、ご容赦ください。
今回はちょっとJSP+Servletというのをやってみようと思ってやったので、簡単なうちに分かったことをまとめておこうと思います。
ほぼ参考のとおり作成してそこからの話を書きます。
【参考】
①[JSP & Servlet 入門](https://qiita.com/Kazunori-Kimura/items/a15a011485ac92074d6f)
###やったこと
・eclipseのインストール
・簡単なのを作る
・日本語入力対応
・画像表示
・コードを追加
###・eclipseのインストール
最近のバージョンもありますが、参考の[https://ftp.jaist.ac.jp/pub/mergedoc/pleiades/4.6/pleiades-4.6.3-java-win-64bit-jre_20170422.zip](https://mergedoc.osdn.jp/index.html#/pleiades_distros4.6.html)を解説のとおり、Windows10にインストールしました。(以

元記事を表示

【Java】Java入門

#【Java】Java入門
「順次進行」「条件分岐」「繰り返し」の勉強までしました。

##実行
“`java:Hello.java
class Hello {
public static void main(String[] args){
System.out.println(“Hello”);
}
}
“`
“`:出力
Hello
““

##変数
“`java:Variable.java
class variable {
public static void main(String[] arg){
int var = 1;
System.out.println(var);
}
}
“`
“`:出力
1
““

##配列
“`java:Array.java
class Array{
public static void main(final String[] args) {
int[] arr = new int[] { 8, 12, 21 };

元記事を表示

【わかりやすく解説‼】Javaのオーバーロードの使い方

## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)

– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)

– [【わかりやすく解説‼】Javaのインスタンスの使い方](https://qiita.com/ryome/items/62ba0d8395af6698053a)

– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)

事前知識として、上記リンクの内容が必要です。

## 2.オーバーロードとは

– `オーバーロード` とは、同じメソッド名で `異なる引数の数` または `異なる引数の型` を持つメソッドを定義すること。
– 引数の数が同じコ

元記事を表示

Spring Batchのジョブ起動パラメータ

spring-bootの環境でspring-batchのジョブ起動パラメータを使用する方法について。

# ソースコードなど
## build.gradle

“`gradle:build.gradle
plugins {
id ‘org.springframework.boot’ version ‘2.2.6.RELEASE’
id ‘io.spring.dependency-management’ version ‘1.0.9.RELEASE’
id ‘java’
}

configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation ‘org.springframework.boot:spring-b

元記事を表示

IntelliJ + Docker (APP+DB) + SpringBoot (Maven) 環境構築

# 注意
初心者なので説明が不足している可能があります。ご了承ください。
不足部分は修正するか再投稿してブラッシュアップしていきます。

# 前提
■JAVAがインストールされていること
今回はJava SE 14を使用しています
https://www.oracle.com/java/technologies/javase-downloads.html

■IntelliJがインストールされていること
【公式ダウンロード IntelliJ IDEA】
https://www.jetbrains.com/ja-jp/idea/download/#section=windows

【簡易解説】
ダウンロードして適当にNextしまくる(細かい設定は調べてください)
IntelliJを起動してこのあとも適当に次へ
ライセンス有無を聞かれるのでログイン(登録作業)して完了
自分の場合IntelliJ IDEA Ultimateを定期購入しているので
JB Accountにログインできれば使用できる
たしか一ヵ月か半年くらい無料でできたはずです
ちょっとだけ勉強したいときとかはお金かけずにできる

元記事を表示

Nullと空文字と空白と

どこかの小説とかで、こんな感じの文章があったような…(笑)

さて、Springのバリデーション(入力チェック)に関する学習をしているのですが、ふと気になったので備忘録として残しておきます。

参考:『NULL』『ブランク』の違いを解説 『スペース』『空文字』との違いも

  • Null:存在しない状態を指すよ。
  • 空文字:長さ0の文字列のことだよ。
  • 空白:半角スペース”_”や全角スペース”_”のことだよ(アンダーバーは見えやすくしただけなので間違えないでね)。
  • これを理解しないと不具合の原因になるらしいので、気を付けておこう。特にDBを扱うときにエラー要因になったりするらしい。

元記事を表示

Java8のLambda, Stream, LocalDateについて

# 目的
Lambda、Stream、LocalDateの使い方をマスターして普段から使えるようになろう!

# Lambda
#### Lambdaとは?
Lambdaはメソッドを変数として定義して使用する方法です。
Lambdaを使うとコード行を少なく記述することができます。
また、定義したメソッドを他のメソッドの引数に渡すこともできます。
数回しか使わなく他のクラスから参照しないメソッドはLambdaで書くようにしましょう!

#### 基本的な書き方
Lambdaはオーバーライドする関数名などを全て省略して書くため、メソッドが1つしか定義されていないインターフェースを継承する必要があります。
Javaにはすでに引数や戻り値の数に応じて使える関数型インターフェースを用意してくれているのでそれらを使います。

**※注意 引数と戻り値にintやdoubleといったプリミティブ型を使用するときはそれぞれ対応しているインターフェースを使いましょう! (パフォーマンスに差が出てくるので)**
例)
// intを送ってintを受け取りたい時
Function → IntUnaryO

元記事を表示

【Java】char型の変数に文字列を代入したらincompatible typesエラーが発生した

##環境
・ホストOS: Windows10 Home
・ゲストOS: WSL2 Ubuntu18.04 LTS
・VScode ver 1.44.2
・Java openjdk11

#エラー内容

“`java

public static int execute(int firstNum, char operator, int secondNum) throws ArithmeticException{
switch (operator) {
case “+”: //1
return firstNum + secondNum;
break;
“`

上のコードを実行したところ、//1の箇所で下記のエラーが発生した。
・incompatible types
・Type mismatch: cannot convert from String to char

“+”がchar型ではなく、String型の文字列として認識された模様。

##解決法

・文字をchar型の変数と

元記事を表示

springでクラスパス下のファイルを文字列として読み込む

とりあえず“`src/main/resources/application.yml“`を文字列として読み込むコード。

“`java
import java.io.IOException;
import java.nio.charset.StandardCharsets;

import org.springframework.core.io.ClassPathResource;
import org.springframework.util.FileCopyUtils;

import jp.co.rakuten.firstparty.base.exception.FirstPartyBizException;

public class Hoge {

public static void main(String[] args) {

String path = “application.yml”;
try {
String str = new String(FileCopyUtils.copyToByteArray(new Class

元記事を表示

OTHERカテゴリの最新記事