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

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

JSPファイルを作成してlocalhost環境で動かしてみた日記。

自宅の趣味用PCで**JSPファイルを作成してlocalhost環境で動かす**というのをやってみたくなったのでやってみた。
※この記事は私の自分用の日記みたいなものですので、読む価値があるかどうかはアレです。

# Javaをインストール
Javaをインストールした。超簡単に書くと下記のような流れ。

・ネット上から **jdk-15.0.2_windows-x64_bin.exe** を入手してきてインストール
・ユーザー環境変数のPATHに`C:\Program Files\Java\jdk-15.0.2\bin`を追加
・システム環境変数のJAVA_HOMEに`C:\Program Files\Java\jdk-15.0.2`を追加
・念のためコマンドプロンプトで`java -version`して結果を確認

# tomcatをインストール
こちらの解説サイトの通りに作業した感じ。

【はじめての方向け】Apache Tomcatのインストール方法を簡単に!

今回は`C:\apache-tomcat-9.0.44`に置くことにしたので、
tomca

元記事を表示

【Java】Selenium+ChromeDriverで突然「あなたは人間ですか?」と聞かれた時は

# 突然の死
Seleniumで作ったツールで保存したキャプチャ画像みんなCAPTCHA認証になってるやろがい!
先週までちゃんと動いてたのに何で急に認証を要求してくんの!?聞いてないわ!
そんな感じで突然それまで動いてたツールが死んでしまったので、その対処法のメモです。

なお、突然の死が発覚したキャプチャ対象はMavenのリポジトリでした。
手動では閲覧のために認証を必要としない普通のサイトです…

動作確認を行ったChrome本体とChromeDriverのバージョンは以下の通りです。

– Google Chrome: 89.0.4389.90(Official Build) (64 bit)
– ChromeDriver – WebDriver for Chrome:89.0.4389.23

# ソース
“`java
ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File(“chromedriver.exeのパス”)))

元記事を表示

Java PDFをPDF/A-1A, 2A, 3A, 1B, 2B及び3Bで保存

PDFにはいろいろな家族があります。例えば、PDF/1Aは、PDFの各種オブジェクトの中で、必須とする機能、使用を制限する機能、使用を禁止する機能などを決めています。今回は Spire.PDF for Javaを使ってPDFをPDF/A-1A, 2A, 3A, 1B, 2B及び3Bで保存する方法を紹介します。コードはとても簡単ですから、一緒にみましょう!

下準備

1.E-iceblueの公式サイトからFree Spire.PDF for Java無料版をダウンロードしてください。

f:id:lendor</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>PDF</div>
<div class='tag-cloud-link'>保存</div>
<div class='tag-cloud-link'>PDFA</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/iceblue/items/00027d36647e2cc20004'>元記事を表示</a></div>
<h3 id= Java PDF添付ファイルの追加

PDF およびそれ以外のタイプのファイルを PDF に添付できます。PDF を別の場所に移動すると、添付ファイルも PDF 文書と一緒に移動します。今回は Spire.PDF for Java を使ってPDFに添付ファイルを追加する方法を紹介します。

下準備

1.E-iceblueの公式サイトからFree Spire.PDF for Java無料版をダウンロードしてください。

f:id:lendoris:20210331103946p:plainJavaのCallableはExceptionがcatchできない?

仕事でCallableスレッドの処理がExceptionを拾えないのでRunnableに替えるという作業があったので本当にExceptionが取れないのか試してみました。

### Callableの実装

“`java
package example;

import java.util.concurrent.Callable;

public class Call1 implements Callable {

// callの中に実際の処理を書く。
public String call(){
String nonNum = “null”;
System.out.println(“init Call1”);
// Exceptionを発生させる
System.out.println(“print call ” + Integer.parseInt(nonNum));
return “Call”;
}
}
“`

### Runnableの実装

“`java
package example;

public cl

[Android]脳死で使っていたcontextを少し掘り下げる

# Contextってよく使うけども…
今まで、ダイアログ等の引数にcontextを要求されると、条件反射でcontextを打ち込んでいましたが、少しだけ掘り下げてみようかなと思います。

前提としてcontextは、奥が深いみたいなので完全な理解は難しそうなので、ここでは、Activityで用いるContextとApplicationContextの違いについて触れてみたいと思います。

# ApplicationContextとActivityContextの違い
ApplicationContextは、文字通りでアプリ間のライフサイクルと関係していてアプリを起動してから、ずっと生き残って欲しいときに使います。
その為、アプリ間で共有されるローカルデータベースのアクセス等で使われますね。

そして、ActivityContextは流れで分かるかもしれませんが、Activityのライフサイクルと関係しています。その為、ActivityがonDestroy()されると、死にます。
Intentの時に使いますね。

ちなみに、thisもよく使われますが、thisはクラス自体を指します。

元記事を表示

jenv環境でmavenコマンドを利用すると.java-versionが無視される

jenvで複数バージョンのJavaを管理していたところ、mavenコマンドがjenvではなくSystemのJavaを参照していたので、jenvを参照するように行った設定のメモ。

# 環境

– OS : macOS 11.2.3
– jenv : 0.5.3
– maven : 3.6.3

# 状況
“`bash
$ mvn -version

Apache Maven 3.6.3 (xxx)
Maven home: XXX
Java version: 15.0.1, vendor: N/A, runtime: XXXX
Default locale: ja_JP, platform encoding: UTF-8
OS name: “xx”, version: “xx”, arch: “xx”, family: “xx”
“`

# 解決方法
“`bash
$ jenv enable-plugin maven
“`

“`bash
$ jenv version

Apache Maven 3.6.3 (xxx)
Maven home: XXX
Java version:

元記事を表示

環境省の花粉情報取得APIを使ってみた

# はじめに

花粉症の方なら皆さんご存知のサイト「[環境省花粉観測システム(愛称:はなこさん)](http://kafun.taiki.go.jp/index.aspx)」が2021年3月29日に[新たなサイト](https://kafun.env.go.jp/)にリニューアルされていました。

よくよく見ると、「[環境省花粉観測システムのAPI](https://kafun.env.go.jp/apiManual)」なるものが公開されていましたので、早速使ってみました。

# APIの概要

実は[APIの説明ページ](https://kafun.env.go.jp/apiManual)は存在するのですが、JSONで取得できることと下記のパラメータ説明以外はあまり詳しい説明がありません。

##パラメータ

|パラメータ名称|URLに入力する名前|必須|値の例|備考|
|:-:|:-:|:-:|:-:|:-:|
|取得開始年月|Start_YM|○|202003|
|取得終了年月|End_YM||202005|指定しない場合は現在の年月|
|都道府県コード|TDFKN_CD|○|0

元記事を表示

Java Tokenintercepterを使用して、Sessionの確認

# TokenInterceptorとは
Controllerの実行前後に処理を追加する

#使用環境
Java
Springboot
SpringToolSweet4

#実装方法
・プロジェクト構造
![スクリーンショット 2021-03-30 16.52.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172696/6f81dd65-0d5e-b4d4-9702-0d6af53286f3.png)

以下ファイルを作成

“`java:TokenInterceptor.java
package com.example.demo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotatio

元記事を表示

ProcessBuilderクラスの使い方

スッキリわかるJava入門(実践編)を読んでいると、**ProcessBuilderクラス**の使い方がちらっと載っていた。
Javaからコマンドプロンプトやターミナルを呼び出す処理は汎用性が高そうだったので、使い方をまとめるのがここでの目標である。

この文は最後に書いているが、ProcessBuilderクラスをまとめる上で、Processクラス、BufferReaderクラス、InputStreamReaderクラスなどとたくさんの出会いがあった。

# ProcessBuilderとは
ProcessBuilderを一言でまとめると、下記である。
> ProcessBuilderとは、Javaから外部プログラムを実行するために使用するクラス。

[ProcessBuilderの使い方](https://techacademy.jp/magazine/19751)
[ProcessBuilderの公式ドキュメント](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/ProcessBuilder.html)

つまり、こ

元記事を表示

Java学習 基礎編 コンストラクタとは?

Java学習の備忘録になります。
内容は初心者なので基礎的な部分となります。
Javaに興味がある方やJava学習初心者の参考になれば幸いです。

* * *
#### コンストラクタとは?

前回、インスタンスの生成から、インスタンスフィールドの値をセットする方法あたりを行ってきましたが、このインスタンスフィールドが増えると記述も面倒だし、わかりづらかったりします。

そこで登場するのが**コンストラクタ**です。

詳しく説明すると、クラスにはコンストラクタというものがあり、**newを使ってインスタンスを生成した後に自動で呼び出される特別なメソッド。**

#### コンストラクタの定義方法

下記2つの決まりを守ること。

**①コンストラクタ名は、クラス名と同じにする
②戻り値を書いてはいけない
(voidも書かない)**

“`Person.java
class クラス名{
コンストラクタ名() { // コンストラクタ名はクラス名と同じにする
// インスタンス生成時に行いたい処理
}
}
“`
■具体例

“`Main.java
Person pers

元記事を表示

忘備録_Logic

“`java.java

import java.util.Scanner;

public class ScannerInst {

public static void main(String[] args) {
var s = new Scanner(System.in);
int[] a = new int[5];
System.out.println(“————“);
for(int i = 0; i < 5;) { a[i] = s.nextInt(); if(a[i] >= 0)
i++;
}
System.out.println(“———–“);
for(int i = 0; i < 5; i++) { System.out.println(a[i]); } } } ```

元記事を表示

テスト駆動開発

# テスト駆動開発
[本書](https://www.amazon.co.jp/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA-Kent-Beck/dp/4274217884)は、テスト駆動開発(Test-Driven Development)について書かれている。
第一部では、TDDで書かれた典型的なモデルのコードを例示している。実際のコードを見ることで、TDDのイメージが付く。それにより、テストコードを先に書き、設計を有機的に成長させる方法を学ぶ。
第二部では、より複雑なロジック(リフレクションや例外のテスト等)のテスト方法を、自動テストのフレームワークを実際に開発しながら学ぶ。
第三部では、どのようなテストを書くのかの判断に関するパターン、xUnitを使用したテストの書き方のパターン、リファクタリング方法などを学ぶ。

# テストとは
動詞では「評価する」、名詞では「合格か不合格かを判定する手順」という意味合いである。
テストを頻繁に走らせることで、ミスをしでかす確率を減らし結果的にストレスが減ってい

元記事を表示

リーダブルコードの概要をまとめてみた【前編】

#はじめに
本記事ではプログラミングの本として有名な「リーダブルコード」を読んだので、簡単に概要を紹介する。
前編では1章〜7章までを紹介。

#1章 理解しやすいコード
###鍵となる考え
コードは理解しやすくなければならない。
コードは他の人が最短時間で理解できるように書かなければならない。

– 優れたコードとは他人が最短時間で理解できるコードである。理解できるとは変更を加えたり、バグを見つけたりできるという意味だ。
– コードは短い方が良い。だが理解するまでの時間を短くする方が大切だ。
– 理解しやすいコードは設計やテストのしやすさにつながることが多い。

#2章 名前に情報を埋め込む
###鍵となる考え
名前に情報を詰め込む。
気取った言い回しよりも明確で正確な方が良い。
– 明確な単語を選ぶ。

“`
def Getpage(url):
“`
このメソッドはデータベースやインターネットなどどこから取ってくるかわからない。インターネットであれば、DownloadPage()の方が適切。

また、使用する単語の代替案を調べれば、適切な単語を選択できる。

– tmpやret

元記事を表示

いつもぶつかって何となく調べて解決してきたAndroid周りの対応

# 前置き
– いつも同じようなエラーが発生する……
– 多分Unityのversion upしたタイミングな気がしている……
– でもその度調べて解決してるが、結局いつも原因忘れてしまっている……

# 環境
– Unity2019.4.18f1
– GoogleMobileAds-v5.4.0
– Android Studio 4.1.3

# 結論
– JDKのバージョンをテキトーなやつ指定してるとUnityでエラーになる場合がある

# 事象
– GoogleMobileAdsを更新したので、Android Force Resolveを再度実施しようとした
– そうしたら以下のようにエラーが発生……

“`sh
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
at org.codehaus.groovy.vmplugin.VMPluginFactory.(VMPluginFactory.java:43)
at

元記事を表示

SpringBoot2で簡単なアプリを作ってみよう!(2/3) ~画面表示~

この記事は以下の続きです。
[SpringBoot2で簡単なアプリを作ってみよう!(1/3) ~環境設定~](https://qiita.com/nmaolks/items/63be973c604a20cecdaa)

第2回目は画面表示をしていきます!

##画面を表示する
パスについてですが、前回も載せておりますが戻って確認するのも面倒だと思うのでこちらにも載せておきます。
![スクリーンショット 2021-03-27 22.25.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1234354/6cb66866-8397-a71e-4fb1-8140fd4a0b37.png)

####HTMLを作成する

“xmlns”で名前空間を宣言することによりThymeleafタグを使用することができるようになります。
(\)←こんな感じのタグを使います。

“`html:productManage.html

javacコマンドでコンパイルするソースファイルを指定する方法(※ソースファイル内に、パッケージ宣言のクラスが参照されている場合)

#概要
パッケージ宣言のクラスが参照されているソースファイルを
コンパイルする際にエラーが起き、
コンパイルが出来なかったので、その時の健忘録である。

“`terminal:フォルダ階層
. #①
├── logics #②
│   └── CalcLogic.java #③
└── main #④
└── Calc.java #⑤

“`

“`java:Calc.java
package calcapp.main;

public class Calc{
public static void main(String[] args){
int a = 10;
int b = 2;
int total = calcapp.logics.CalcLogic.tasu(a, b);
int delta = calcapp.logics.CalcLogic.hiku(a, b);
System.out.println(“足すと” + total + “、引くと” + delta);
}
}
“`

“`java:CalcLo

元記事を表示

いい感じのランダムの色が欲しいなぁって時にこれ。

例えば10個のいい感じのランダムの色が欲しいって時。
ガチのランダムにすると意味わからない変な色が出来上がったりしてしまうので。
っていうものをメモ程度に残しておきます。
意外と使える!

hueの部分の分母を欲しい個数にするだけです。
saturationとbrightnessに関しては自分の好みの色味にしてください。

下記コードそのまま使用した際にはこんな感じの色が出力されます。
~~似てる色があるとか言わないで~~
`#CC8B29`
`#ABCC29`
`#49CC29`
`#29CC6A`
`#29CCCC`
`#296ACC`
`#4929CC`
`#AB29CC`
`#CC298B`
`#CC2929`

“`swift.swift
let colorList =
[
UIColor(hue: 0/10, saturation: 0.8, brightness: 0.8, alpha: 1),
UIColor(hue: 1/10, saturation: 0.8, brightness: 0.8, alpha: 1),
UIColor(

元記事を表示

JavaのObjectはObjectかとか

# クイズとか
またもや突然クイズです。
**「Javaにおいて、全ての配列およびクラスは暗黙的にObjectクラスを継承している」**
YESかNOか

# 答えとか
これ、自分もよくこういうことを言ってしまっていますし、[日本語のJavaDoc](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Object.html)読んでみたら
>Objectクラスは、クラス階層のルートです。すべてのクラスは、スーパー・クラスとしてObjectを持ちます。配列を含むすべてのオブジェクトは、このクラスのメソッドを実装します。

と書いてありますし。

が、**答えはNO**です。

Javaにおいて、全ての配列およびクラスは暗黙的にObjectクラスを継承しているわけではありません。
**例外がある**んです。

# 例外のクラスとか
例外となるクラスはObjectクラスです。
**ObjectクラスはObjectを継承しません**。
そりゃそーですよね。
Object extends Objectとかやったら
Objcet::newを

元記事を表示

【JDBCドライバ】MySQL Connector/J 8.0ダウンロード手順

##はじめに
自身がJava学習中にDB接続の環境を整える際に悩んだので、
JDBCドライバのダウンロードから環境のセットアップまでを記載します。

##使用環境
開発環境:paizacloud
Javaバージョン:13.0.1
Apache Tomcatバージョン:9.0.41
DB:MySQL
JDBCバージョン:8.0.23

##1.JDBCのインストーラーダウンロード

https://dev.mysql.com/downloads/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573636/75f58bb3-950c-f08c-b5b5-2f2b70bc9ffa.png)
——————————
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573636/5d49a746-5048-6b92-f23b-0ee244462728.png)

元記事を表示

OTHERカテゴリの最新記事