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

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

【Java基礎】ローカルでJavaファイルを動かす

## 前提
JDKをインストール、PATH通し済み
環境 windows

## 準備
1. Javaファイルを作成し、ローカルの適当な場所に置く
※下記にあるソースをテキストファイルにコピペし、拡張子を`.java`に変更すればOKです
1. コマンドプロンプト開き、ファイルを置いたディレクトに移動(cd)、
(もしくはファイルを置いたディレクトをエクスプローラーで開き、パス入力箇所で`cmd`)
cmd.png

cmd開く.png

元記事を表示

[Vision API] Javaで画像のエンティティとページを検出する

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像のエンティティとページを取得します。
指定した画像に対し、インターネット上の情報を取得できます。

取得できる情報は下記になります。
・インターネット上の類似の画像からのエンティティ
・インターネット画像に一致する画像
・視覚的に類似した画像
・リクエスト画像のトピックに関するサービスの最善の推測
・インターネットからの一致する画像を含む Web ページ
・インターネットからの部分一致画像

実際にどのような情報が取得できるのかは、
本記事の[3. 結果の検証](#3-結果の検証)を参照ください。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1

元記事を表示

[Vision API] Javaで不適切なコンテンツを検出する(セーフサーチ検出)

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像のセーフサーチ検出を行います。

セーフサーチ検出は、画像に含まれる不適切なコンテンツを検出します。
以下の5つのカテゴリが、画像にどの程度の可能性で存在するかチェックします。
|カテゴリ|
|—|
|アダルトコンテンツの可能性|
|医療画像である可能性|
|際どい内容が含まれている可能性|
|なりすましの可能性|
|暴力的なコンテンツが含まれている可能性|

それぞれの上記のカテゴリに対して以下の5段階で評価します。
|レベル|可能性|
|—|—|
|1|可能性は非常に低い|
|2|可能性は低い|
|3|可能性はある|
|4|可能性は高い|
|5|可能性は非常に高い|

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No|

元記事を表示

Spring Batchを業務で使うために調べたことまとめ

Spring Batchを業務で使用する機会があり調べていたところ、最新のバージョンでの実装方法や躓いたポイントなどで日本語の記事が見つかりにくかったので、備忘録がてら記事にしました。
Spring Batchそのものについては特に解説しませんので、全く触れたことがないという方は以下の記事等を参考に、基本的な概念について理解することをおすすめします。

https://terasoluna-batch.github.io/guideline/5.0.0.RELEASE/ja/single_index.html#Ch02_SpringBatchArch

## 前提
以下の環境での実装例です。
また、実装例はあくまで検証用のため、設計上必ずしも最適化されていないところはご容赦ください。
– Spring Boot 3.2.2
– Spring Batch 5.1.0

## 1.メタテーブルの作成について
Spring Batchを使う上で、バッチの実行状況を管理するメタテーブルが必要です。
これらは初回実行時に作成する必要があります。
設定ファイルにspring.batch.jdbc.

元記事を表示

【Java】jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator【エラー解決】

# はじめに
JSPで表題のエラーが出て苦戦したので、エラー解決方法をメモ。

## やろうとしたこと
Eclipse上でこういうJSPを用意して、全てのJSPにインクルードするようにweb.xmlの方で設定。
“`jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
“`
“`web.xml




*.jsp UTF-8 /WEB-INF/include.jsp



“`

## おこった事象

作ったアプリのどの画面でもいいのでアクセスすると、下記

元記事を表示

[Vision API] Javaで画像内のランドマークを検出する

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像内に含まれているランドマークを検出します。
ランドマークとは、よく知られている自然や人工建造物を示すそうです。

画像内のランドマークの位置だけではなく、**緯度と経度**も取得できます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||2|[レスポンスの内容](#22-レスポンスの内容)|
|3||[結果の検証](#3-結果の検証)|
||1|[ランドマークが少ない場合](#31-ランドマーク

元記事を表示

Java複数バージョンの共存 対応環境VSCode/Linux

ここで言う共存は単一プロジェクト内の共存ではなく、OS上での共存。
例えば、Java11とJava17を楽に切り替えて動作検証テストしたいとき。
システム環境変数だと切り替える毎に端末再起動が必要になってしまう。

## VSCode(ローカル)
ワークスペースで使い分ける方法。
VScodeの設定画面からユーザータブではなくワークスペースタブ側にJava Homeを設定する。
なお、ユーザー側よりワークスペース側の設定の方が優先度が高い。

settings.jsonに設定される内容
“`(Java11のワークスペース)settings.json
“java.jdt.ls.java.home”:”C:〜11〜”
“`
“`(Java17ワークスペースの)settings.json
“java.jdt.ls.java.home”:”C:〜17〜”
“`
※VSCodeでJavaHomeを設定していなければOSのシステム環境変数が使用される。
※VSCodeのバージョンが古い場合のプロパティ名は”java.home”になる。

## Linux
“`:ウィンドウ1
export

元記事を表示

【Spring】[org.springframework.web.context.ContextLoaderListener] のアプリケーションリスナの設定中にエラーが発生しました。【Eclipse】

# はじめに
EclipseでSpringの適当なアプリを作ってTomcatを起動すると、表記のエラーがでるので解決策をメモ。

:arrow_down: ログ。
“`
重大: クラス [org.springframework.web.context.ContextLoaderListener] のアプリケーションリスナの設定中にエラーが発生しました
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1449)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1257)
at org.apache.catalina.core.DefaultInstan

元記事を表示

【Spring】org.springframework.web.servlet.DispatcherServlet noHandlerFound【エラー解決】

# はじめに
Spring MVCで適当なアプリを作ったところ、404エラーが出続けたので自分の誤りをメモ。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/526202/e5e4d8af-9333-f41b-31db-2cc172f36df6.png)

:arrow_down: ログ抜粋
“`
3月 08, 2024 2:29:43 午後 org.springframework.web.servlet.DispatcherServlet noHandlerFound
警告: No mapping for GET /demo6/
3月 08, 2024 2:29:43 午後 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleNoHandlerFoundException
警告: No endpoint GET /demo6/.
“`

# 間違ってたとこ
Bean定義ファイルの

元記事を表示

[Vision API] Javaで画像のクロップヒントを検出する

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像をクロップするヒント(座標)を取得します。
画像のクロップとは、中心のROI矩形領域のみの部分画像の切り出すことで
画像の最適化を行います。

記事では、APIの実行、その結果についてのみを記載していますので、
画像クロップや画像処理周りについて気になる方は検索してください。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||2|[レスポンスの内容](#22-レスポンスの内容)|
|3||[結果の

元記事を表示

[Vision API] Javaで画像内の文字を検出する

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像内に含まれている文字を検出します。

画像から光学式文字認識(OCR)を使用してテキストを検出、抽出できます。
検出の指定は2つあります。
|タイプ|検出内容|
|—|—|
|TEXT_DETECTION|抽出された文字列全体、個々の単語、それらの境界ボックスが取得できます。|
|DOCUMENT_TEXT_DETECTION|「TEXT_DETECTION」で取得できる情報に加え、
検出結果の信頼度、ページ、ブロック、段落、単語、改行の情報が取得できます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの

元記事を表示

フィールド値のみを利用するには

getterメソッドを用いるとフィールド値のみを取り出す事が出来ます。

~~~
アクセス修飾子 フィールドの型 getフィールド名(){
return this.フィールド名;
}
~~~
この時、フィールド名の最初の文字を大文字にする必要があります。

元記事を表示

JSONファイルからhttpリクエスト情報を取得してhttpリクエストする

“`json:requestURL.json
{
“AService”: “https://postman-echo.com/post”,
“BService”: “https://postman-echo.com/get”,
“CService”: “https://postman-echo.com/put”
}
“`

“`json:requestHeader.json
{
“client-id”: “id-hoge”,
“Authorization”: “auth-info”,
“client-secret”: “secret-hoge”
}
“`

“`json:requestBody.json
{
“apiVer”: “10.0”,
“list”:[
{
“name”: “hoge”,
“url”: “http://hoge.com”
},
{
“name”: “fuga”,
“url”: “http://fuga.com”
}
]
}
“`

`

元記事を表示

【Java】EC2でHello Worldするまで

## はじめに
今回は、AWS EC2上にJavaをインストールし、Hello Worldしてみました。
備忘録として、記録します。
## 環境
・Windows 11
・エディタはVScodeを使用
## 前提
・AWSのアカウントを持っていること
・IAMユーザーを一つ作成してあること
*AWSのベストプラクティス的にルートユーザーで作業することは推奨されていないため。

IAMユーザーの作り方は以下を参照
https://qiita.com/kzykmyzw/items/ca0c3276dfebb401f7d8
## 今回やること
EC2上にJarファイルをデプロイし、アクセスできる。

## Step1 セキュリティグループの作成
まず、はじめに任意のIAMユーザーでコンソールにログインし、EC2を開きます。
そして、右下にあるセキュリティ・グループを押して、右上にあるセキュリティグループを作成を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720597/bbbb

元記事を表示

日時チェックがしたい

先日ふと
日付形式がyyyy/MM/dd の形式ではうまく実装ができない箇所があった。
uuuu/mm/ddの形式であれば実装できたのだが違いが分からなかったので簡単にまとめる。

以下はどこでも見るような簡単な日付チェックの処理の一文である。
“`java

try {
LocalDate.parse(“日付を保持したクラス”,DateTimeFormatter.ofPattern(“uuuu-MM-dd”).withResolverStyle(ResolverStyle.STRICT));
} catch (DateTimeParseException e) {
return false;
}
“`

処理に関して西暦で処理を実施するのであれば、
存在しない日付の自動的な修正も含めてuuuuの形式が無難であった。
逆に、存在しない日付をエラーとしたい場合は上記のように
ResolverStyle.STRICTをつけることで2022/09/31などをエラーとすることができる。
(※そのままだと自動的に09/30に修正してしまう)

逆に、

元記事を表示

Java util timerに関して(スケジューラ)

javaのtimerクラスに処理の定期実行を実施するクラスがある。
スケジュールメソッドで実行するのだが、
引数に
1・実行する処理
2・開始時間(ミリ秒)
3・実施間隔(ミリ秒)
で指定することで簡易的にではあるがJP1のような
定期実行処理をJavaで実施することができる。

例えばAの処理を10秒後に、60秒間隔で実行する
ような処理の場合
“`java
time.scheduleAtFixedRate(A(), 10000, 60000);
“`
といった実装になる。

問題点としては複雑な実行処理が難しい点で
複数タスクをこのメソッドで実行するのはやや難がある

例えばサイトアクセスのカウントなどであれば単一のタスクを永遠と繰り返すだけのため
このようなTimerメソッドでも問題はないのだが、

A→B→Cのような連続したタスクの実行の場合
処理速度の如何によっては並行して処理が実施されるため挙動に影響が出る

複数の処理実施の場合はバッチで順々に呼び出す方が無難かと思われた

TimerクラスはThreadよりは使いやすそうに見えるが
周期的に実行するクラスとメ

元記事を表示

ABC343の解答[Java]

## はじめに
今回はコンテスト中にFまで、コンテスト後にGを解いたのでそれを載せようと思います。

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc343/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認下さい。
では、見ていきましょう。

## A – Wrong Answer
問題文は[こちら](https://atcoder.jp/contests/abc343/tasks/abc343_a)

$A+B$が$0$になるとき以外は$0$を、$A+B$が$0$のときは$1$を出力するようにしました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final Sim

元記事を表示

[Vision API] Javaで画像内のラベルを検出する

Googleが提供しているVision APIをJavaで使ってみました。

APIを使用し、画像内に含まれているラベルを検出します。

ラベルは、画像にどのようなものが写っているのかをAIで判定し、
文字列(英語)で返してくれます。

本記事の[3. 結果の検証](#3-結果の検証)でどのようなものが検出されるか試していますが、
「ジーンズ」「猫」「自然食品」なども認識されます。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Vision API] Javaで画像内のいろいろなものを検出する](https://qiita.com/doran/items/444cb6231b7dffb9ddac)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[Feature.Typeの指定](#1-featuretypeの指定)|
|2||[実行結果の取得](#2-実行結果の取得)|
||1|[レスポンスの出力](#21-レスポンスの出力)|
||2|[レスポンスの内容](#22-レスポンスの内容)|
|3|

元記事を表示

Processingの複素数ライブラリ

https://qiita.com/hextomino/items/13d74872625e52a1329a

 以前、上記の投稿をしたときには、processingの複素数ライブラリを見つけることができなかったんですが、見直したら、ちゃんとありました。javaのライブラリを探していたのが行けなかったのかもしれません。

https://processing.org/reference/libraries/

https://github.com/vmathmachine/Complex-Numbers/tree/latest

ライブラリ名称「Complex Numbers」
制作者「Math Machine」
マニュアルは、GitHubからZipでダウンロード。HTMLで提供。

以下、過去の投稿同様に、確認していきます。

# 複素数の計算

二乗してみます。

“`math
i^2=-1
“`

“`java:processing
import complexnumbers.*;
Complex i = new Complex(0,1);
print(i.mul(i));

元記事を表示

ABC342A~Fの解答[Java]

## はじめに
今回はコンテスト中にEまで、コンテスト後にFを解いたのでそれを載せようと思います。

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc342/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認下さい。
では、見ていきましょう。

## A – Yay!
問題文は[こちら](https://atcoder.jp/contests/abc342/tasks/abc342_a)

一文字目が先頭以外に見つからなかったら$1$を、見つかったら先頭と異なる文字の位置を出力しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter

元記事を表示

OTHERカテゴリの最新記事