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

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

EclipseでtWAS 9.0開発環境の構築

# 目的

EclipseでtWAS 9.0用のアプリケーションをテストするときには、古い(Java8で動作する)Eclipseが必要でした。その方法を記載します。

# IBM Insatllation Manager
IBM Installation Manager を導入します。(IBM id が必要です)

[Installation Manager and Packaging Utility download documents](https://www.ibm.com/support/pages/installation-manager-and-packaging-utility-download-documents)

導入手順や画像はここでは省略します。IBM id さえあればダウンロードできて導入できました。最新にしておきましょう。

# tWAS 9.0

IBM Installation Manager に ILANのレポジトリを追加して導入します。
ファイル > 設定 > リポジトリの追加
![image.png](https://qiita-image-st

元記事を表示

Java初心者がシングルトンとかDIとか学んでみた

# はじめに
転職先でJavaを業務で使うことになり、2週間前から本格的にJava, Spring Bootの勉強を始めました。
この土日を使ってDIやシングルトンを中心に学んだため、頭の整理も兼ねてまとめたいと思います。

# DIとは

DI (Dependency Injection / 依存性の注入)のこと。
– オブジェクト指向におけるSOLID原則の一つに依存性逆転の法則があり、それを実現する方法がDI。
– クラス間を密結合にせず、疎結合を保つことで開発における高い保守性と変更によるテストへの影響を抑えることができる。

**DIしていない例**
実行クラスが他クラスから情報を取る場合は、newすることで他クラスの情報を取得する
– 実行クラスのメソッド内で別のクラスのインスタンスをnewして生成している
– 実行クラスのメソッドの引数として他のクラスのインスタンスを使用している
“`java
public class B {
private String hoge;

public String getHoge() {
return this.hoge;

元記事を表示

マージしたチャートデータのファイル名の調整

# はじめに

前記事
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初心者】改良版・Commons emailで日本語添付ファイルの文字化け解消

# 改良版を作ったわけ

以前の記事[【Java初心者】Commons emailで日本語添付ファイルの文字化け解消](https://qiita.com/sev01/items/6c8ea0c1a82324341fdd)では、添付ファイルの文字化けが発生しないことを確認していたのですが、差出人やタイトルの文字化けが発生することがありました。

環境変数に頼っていたことが原因かもしれないと思いまして、JavaMailやCommons emailに備わっていたメソッドを利用する方法を試したところ、目的を達成することができました。

“`java
package mailsendtest;

import java.io.UnsupportedEncodingException;
import javax.mail.internet.MimeUtility;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.com

元記事を表示

【spring boot】PokeAPIでポケモンの種族値を取得するWebAPIを作成してみた。

ポケモンのガチ対戦をしていて、どちらの素早さが高いのか分からなくなった経験はありませんか?
そんな自分の悩みを解決すべく、PokeAPIを使用してポケモンの種族値を取得するWebAPIを作成してみました。
PokeAPIとは、ポケモンの情報を取得することが出来るAPIです。

↓↓↓↓pokeAPI↓↓↓↓
https://github.com/oscar0812/pokeapi-v2-java

分かりやすいように先に完成品をお見せ致します。
検索フォーム欄にポケモンの名前を入力すると、ポケモンの種族値を返却してくれます。
![スクリーンショット (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2280983/3b97ef99-54e3-144e-22fd-cb5f6c4d179c.png)
![スクリーンショット (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2280983/04307401-52a

元記事を表示

ReactNativeのMainActivity.javaとかで”class、interfaceまたはenumがありません”が出るときの対処

# 症状
MainApplication.javaとかMainActivity.javaでこんなエラーが出る
“`
…MainApplication.java:4: エラー: class、interfaceまたはenumがありません
package com.hoge.hoge;
“`
(error: class, interface, or enum expected)
# 原因
packageが先頭じゃなくなってる

# 解決
packageを先頭に移動する

“`java:MainApplication/MainActivity.java
import hoge.fuga.hoge;

package com.hoge.hoge;
import hoge.piyo.hoge;

“`

“`java:MainApplication/MainActivity.java
package com.hoge.hoge;
import hoge.fuga.hoge;
import hoge.piyo.hoge;

“`

元記事を表示

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

# はじめに

前記事
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のテスト用モック

元記事を表示

Kotlinで「生産者消費者」の実現

“`kotlin
fun producerConsumer() {
val content = mutableListOf()
for (i in 10 downTo 1 step 1) content.add(i)
val lockForConsumer = Object()
val lockForProducer = Object()

val consumer1 = thread {
while (true) {
synchronized(lockForConsumer) {
while (content.size > 0) {
println(“Consumer1 consume content:${content[content.lastIndex]}”)
content.removeAt(content.lastIndex)
lock

元記事を表示

Javaで競技プログラミングをする際に見つけた面白いメソッド、演算子

#### **Java**で競技プログラミングを始めなければ、一生使わなかっただろうメソッド、演算子があったのでQiitaの練習を兼ねて記事にします。

[AtCoderに登録したら解くべき精選過去問10をJavaで解いてみた](https://qiita.com/0x841/items/0ce887c86cf081312a08)にて紹介されていた回答から興味を持ったメソッド、演算子をまとめます。

# [ABC 081 B – Shift Only](https://atcoder.jp/contests/abc081/tasks/abc081_b)

まずは以下の回答で使われていた、演算子の`|= `
メソッドの`Integer.numberOfTrailingZeros()`です。

~~~java
import java.util.*;

class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc

元記事を表示

Java3週目

第3週目 Jump to java 参照

コンソール入力と出力

生年月日(YYYYY/MM/DD)を入力してください:

このようにユーザーに上記のような文字列を見せるのがコンソール出力であり、上記の質問にユーザーが回答を入力することをコンソール入力という。

コンソールは環境によって変更されることがある。 もし、このプログラムをインテリジェイで実行したなら、インテリジェイのコンソールウィンドウがコンソールになり、ウィンドウ命令ウィンドウでこのプログラムを実行したなら、命令ウィンドウがコンソールになる。 すなわち、コンソールはユーザーの入力を受けたり、ユーザーに文字列を出力する役割をすることを通称する言葉だ。

IOException

上記の例題にmainメソッドを見ると、throwsIOExceptionを使った部分がある。 InputStreamから値を読み込む時はIOExceptionが発生する可能性があるため例外処理をしなければならないが、throwsでその例外処理を先送りさせたのだ。

ストリーム(Stream)とは?

ストリームを最も簡単に理解するには蛇口を考

元記事を表示

Javaでスクレイピングを行う方法(jsoupライブラリを使用する)

# 初めに
本記事は、jsoupと呼ばれるライブラリを使用してJavaでスクレイピングを行う方法について記載しています。
また、公式サイトやネットで調べたことを投稿者なりの理解をまとめた記事となっているのでご注意ください。
以下は、jsoupの公式サイトです。正確な情報はこちらを確認してください。

https://jsoup.org/

# 前提事項
本記事は、Javaを使用するのでJavaの開発環境が必要です。Javaの開発環境が整っていない方は事前に準備をしてください。既に環境が整っている場合は問題ありません。もし、開発環境が整っていない方は、以下に以前投稿者が作成した「Docker、Java、Gradle、VSCode」を使用した開発環境の構築方法について記事がございますので参考にしてみてください。
もちろんEclipse等を使用する方法でも問題ないと思います。また、ビルド自動化システムはGradleを使用していますがMavenに慣れている場合はそちらでも問題ないと思います。(ご自身の慣れている方法で・・・)

https://qiita.com/T-H9703EnAc/ite

元記事を表示

JavaとPythonのHello World(http getバージョン)

## ■前提
Javaのフレームワーク:spring boot
Pythonのフレームワーク:fastapi

## ■本題
### Java
ファイル
“`HelloApplication.java
package com.example.hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloApplication {

public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
“`

“`GreetingController.java
package com.example.hello;

import java.util.concurrent.at

元記事を表示

新卒業務未経験SEがJavaを研修で学んだ所感

# はじめに注記
セキュリティ保護の観点で、会社から研修内容については書いちゃ駄目と言われてます。
というわけで、その点への言及はしません。

# 書いている人のスペック
– 文系卒、ユーザー系SIer企業入社2ヶ月目
– 学生時代はVue.jsとpythonをいじって自動化だったり、サーバレスwebアプリを作ったりしてた。
– 故にサーバー周りやMySQLなど、スキル不足がチラつく。
– バックエンドよりもフロントエンドのスキルが好き。
– ぶっちゃけ、今までClassとかドキュメント見ながら書いてた。
– 最近はReactを勉強中Javaも復習しなきゃ…

# JAVAの基礎をサーッと学んでみて

### 最初の所感
今までインタプリタの言語ばっかやっていたこともあって、まず最初に思ったことは、
「コンパイル鬼だるいな、、、」
ってのが正直な感想です。
コンパイルで確認して実行コマンドをまた打って、、、って慣れないなぁと。

だから最初から新卒で入った会社がPHPだとかPythonだとかだと、
この点煩わしくなくて、プログラミングやったことない人は

元記事を表示

【Android】バックグラウンド(フォアグラウンド サービス)とマルチスレッド(Thread)の動きを簡単な事例で実験的に調査

# はじめに

日頃運転する自分の車の燃費を詳細に調べたくて「OBD2」とAndroidスマホを使ったアプリを探していたら自作も出来そうなので挑戦することにしました。簡単に説明すると、「OBD2」アダプタとAndroidスマホをBluetooth接続し、定期的に「OBD2」のアダプタへ問い合わせ、応答を処理(ループ処理)して車の内部情報を数値に変換する、という構成になります。
色々試していく中で、車の燃費を測定するには、ある程度の時間、データを取得しなければいけませんし、そうは言っても、取得開始/終了は画面から操作したいよね、とか、ほかのアプリ立ち上げたら取得が止まってしまう?とか疑問も出てきて調べていくうちに、”マルチスレッド”とか、”バックグラウンド”というワードが出てきました。

調べた結果をもとに簡単なソースコードで試した結果、

1. メインスレッドでループ処理を実行すると、アプリ画面の終了ボタン処理はループ処理の後になる(中断できない)
1. マルチスレッド(Thread)でループ処理を実施すると、アプリ画面の終了ボタン処理でループ処理を中断できるが、マルチタスクメニュー(

元記事を表示

AWS IoTのトピックにJavaプロジェクトからMQTTをpublishした(aws-iot-device-sdk-java使用)

# はじめに
– 結論だけ(何が必要なのかだけ)知りたい人は準備と出来上がったソースたちを読んで下さい。(~~でもできれば私の格闘様子も読んでほしい~~)
– aws-iot-device-sdk-javaを使用したくても公式ドキュメント(英語)しかなくて本当に辛かったので、私みたいな人を救いたくて自分用に残してたメモをほぼそのまま載せることにしました。救えるかは知りません。
– AWSの構築手順などは割愛してます。あくまでJavaプロジェクト側の話のみです。
– aws-iot-device-sdk-javaはv2でなく**v1を使用してます**。v2はまた少し違いそうなのでご注意を。

– 全体の参考ドキュメント
[https://github.com/aws/aws-iot-device-sdk-java](https://github.com/aws/aws-iot-device-sdk-java)

– APIドキュメント
[http://aws-iot-device-sdk-java-docs.s3-website-us-east-1.amazonaws.com](http

元記事を表示

ABC239A~Dの解答[Java]

## はじめに
今回のコンテストはAからDまで全て灰レベルの問題(ちなみにEから緑以上になります)なので、比較的簡単に実装できます。多分。
なお、今回のコードは私が競プロを初めてまだ一週間も経っていない(ratedでコンテスト参加をまだ経験していない)時のコードなので昔提出したものと(書き換えられる場所があれば)ちょっと書き換えたものを載せたいと思います。

では、解答を説明していきます。

## A – Horizon
問題文は[こちら](https://atcoder.jp/contests/abc239/tasks/abc239_a)

普通にdouble型で受け取って問題文の数式の通りに計算してやればACが取れます。
このコードでは誤差を恐れてちょっと面倒な処理をしています。
“`A.java
import java.io.*;
class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputS

元記事を表示

Javaでnullのフィールドをレスポンスに表示

調べてもすぐ出てこなかったのでメモ。

表示させないようにするのはこちらですが…

“`
@JsonInclude(JsonInclude.Include.NON_EMPTY)
“`

nullや空文字でも表示させたいときはこう書く。

“`
@JsonInclude(JsonInclude.Include.ALWAYS)
“`

元記事を表示

MVVM+hilt+LiveDataを使ったシンプルなアプリ(java)

# 概要
– ボタンを押すとAとBが切り替わるだけのアプリです.
– MVVM+hilt+LiveDataを使っています。
– Model側の値更新を元にViewを更新します。
– javaです。

![スクリーンショット 2022-05-27 14.25.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132514/daa6da1c-58aa-842b-b699-6c26b88fc08a.png)

# 構成
– MainActivity : 画面描画とボタン押下時のイベント定義等
– SampleDataModel : testValueを管理するだけのクラス
– SampleDataViewModel : シンプルなviewModel
※SampleDataModelのtestValueが真ならばA, 偽ならばBを画面に表示することを想定しています

“`mermaid
flowchart
SampleDataViewModel — Inject –> MainActivity
Sa

元記事を表示

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

# はじめに

前記事
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のテスト用モック

元記事を表示

「Android絵文字ポリシー」に開発者が対応する事

# この記事は
2021年10月の Google Play ポリシーアップデートにより「Android絵文字ポリシー」が追加されました。

追加されたポリシーに対応するためにAndroidアプリで開発者が実装しなければならないことがいくつかあるので記事にしてみます。

# 「Android絵文字ポリシー」について簡単に解説
Googleはこれまで絵文字の更新をOSのアップデートにより新しい絵文字を追加してきました。

最新のOSを搭載する高価格帯の端末ユーザーであれば、最新の絵文字を利用できていたが、それ以外のユーザーは最新の絵文字が送られてきても表示できず豆腐と呼ばれる小さな四角い箱(☐)や、間違ってレンダリングされた絵文字シーケンスとして表示される利用できない絵文字が生じていました。

今回の「Android 絵文字ポリシー」によりOS依存であった絵文字の更新が対応アプリの更新で絵文字をアップデートするようになりました。
最新のOSを搭載する高価格帯の端末ユーザーでなくても最新の絵文字を手に入れ利用できるようになったのです。

簡単に言うと、
**アプリ側で絵文字をサポートしてあ

元記事を表示

OTHERカテゴリの最新記事