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

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

動画で学ぶJHipster (5) (エンティティ生成)

# 参考動画

# エンティティの生成
エンティティの自動生成について、
以下は、動画の[テキスト](https://github.com/mraible/jhipster7-demo#generate-entities)に書かれている説明のgoogle翻訳。
JHipsterはいろんなものを生成してくれるようです。

>作成するエンティティごとに、次のものが必要になります。
・データベーステーブル。
・Liquibaseチェンジセット。
・JPAエンティティクラス。
・SpringDataJpaRepositoryインターフェース。
・SpringMVCRestControllerクラス。
・Angularリストコンポーネント、編集コンポーネント、サービス。そして
・コンポーネントごとにいくつかのHTMLページ。

>また、すべてが機能することを確認するための統合テストと、高速に実行されることを確認するためのパフォーマンステストが必要です。理想的な世界では、Angularコードの単体テストと統合テ

元記事を表示

JavaユーザーがPythonを使って印象的だった点

# はじめに
最近Pythonを用いてLambdaを開発する機会がありました。今までJavaを中心に開発してきた自分にとっては新鮮な経験で、Javaと違ってPythonだとこのように書く・書けるのかと感じたところがありました。

今回はJavaを中心に使用している開発者目線でPythonに触れて印象的だった点を書いてみようと思います。

ちなみにPythonのバージョンは3.8です。

## クラスとメソッド、アクセス制限
オブジェクト指向に慣れるとクラスにデータとメソッドをカプセル化したくなります。

例えばJavaの場合だと

“`Java:PersonName.java

public class PersonName {
private String firstName;
private String lastName;

public PersonName(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}

元記事を表示

Javaのコンパイルと実行を同時に行うバッチファイル

# はじめに
javaの勉強で簡単なコードを書くためにわざわざEclipseを起動するのは面倒です。かといって、コンパイルと実行をコマンドで別々に行うのも面倒です。

そこで、コンパイルと実行を同時に行い、Pythonのように実行できるバッチフィルを作成しました。バッチファイルですのでWindows専用です。

## 実行例

テストコード(Main.java)

“`java
/* Main.java */
/* UTF-8で保存 */
public class Main {
public static void main(String[] args) {
System.out.println(“Hello java!”);
for(String arg : args){
System.out.println(arg); // 引数を表示
}
}
}
“`

javac、javaコマンドを使って行う場合(2回コマンドを入力する必要があります)

“`
>javac -encoding UTF-8 Main.java
>java Main hoge pi

元記事を表示

[Android × 株] ヒートマップを作る (ツリーマップ)

S&P500などでよく見られるヒートマップ

業務で使用するにあたり、実装方法を調べたが日本語の記事どころか英語の記事もほとんどなかったので、実装方法をなるべく分かりやすく書いていきます。
ライブラリは使いません。
kotlinを用いて実装します。

## まずは完成形

Screenshot_20210821-142541.png

## 超ざっくりと実装の流れを説明

* 株価データの作成
* 株価データも基に座標を計算
* 座標データを元にCanvasで描画

## 実装

### まずは株価データ用のデータクラスを作成します

“`kotlin:StockData
// 株価データ
data class StockData(
// 運用額
var amount:Double,

元記事を表示

flutterで端末の気圧センサーを用いたpluginを自作して公開してみた

#

# 下準備

まずこれを呼び出します。

`flutter create –template=plugin –platforms=android,ios -a java flutter_barometer`

テンプレート作成時に追加されている、 `example` ディレクトリで

`flutter build apk`

`flutter build ios –no-codesign`

を実行し、事前にアプリをビルドします。

# 作成

### Android
Android Studioで `[プラグイン名]/example/android/build.gradle` を選択してプロジェクトを開きます。

サイドバーにある`[プラグイン名]/java/[パッケージ名]/[プラグイン名]Plugin` というファイルに実装していきます。

### iOS

Xcodeで `[プラグイン名]/example/ios/Runner.xcworkspace` を選択してプロジェクトを開きます。

サイドバーにある

`Pods/Development Pods/hel

元記事を表示

(solved) Maven: CompilationFailureException: Compilation failure

`JAVA_HOME` が設定されていなかったというありがちなやつですが、次に同じことが起こったときに手間取らないように覚書。

# 状況

対象: [Apache PDFBox](https://pdfbox.apache.org/)([GitHub mirror](https://github.com/apache/pdfbox)) 2.0.21

README にしたがって `mvn clean install` を実行するとコンパイルで失敗する。

スタックトレース:

“`
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.0:compile (default-compile) on project fontbox: Compilation failure -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.ma

元記事を表示

Domaを書く時に用意する最低限3ファイルの具体例

# Domaでデータアクセスするのに必要なのは以下の3ファイル

1. エンティティ
2. Daoインターフェース
3. SQLテンプレート

##1. エンティティ(User.java)
データベースのデータ本体を表すクラス

“`Java:User.java
@Table(name = “users”)
@Entity
@Getter
@Setter
public class User extends DomaDtoImopl{
private static final long serialVersionUID = 123456789123456L

@OriginalStates
User originalstates;

@Id
@Column(name =”user_id”)
@GenerateValue(strategy = GenerationType.IDENTITY)
Long id;
String password;
String firstName;
String lastName;
}

元記事を表示

Java × GoogleCalendarAPI でタスク管理アプリ

#はじめに
ポートフォリオとして制作したアプリケーションのポイントを投稿させていただきます。
ポートフォリオURL:https://task-time.net
(まだGoogleCloudPlatformの審査中のため、ログインページから先は進めません。)
GitHub:https://github.com/Nakamura9310/TaskTime

#アプリケーションのコンセプト
### 「①全タスクをメモし②所要時間を見積もり③全てカレンダーに入れる」ことで
###多忙な時に真価を発揮する、タイムマネジメントアプリ

前職時に本当に多忙な毎日を送る中で、タイムマネジメントの重要性を知りました。
タスクをメモするだけではダメです。
どのタスクに何時間かける予定か、カレンダーに落とし込むことができていれば、
タイムマネジメントができているといえます。

_①〜③ができていると_
_→新しいタスクが発生した時に、いつ実行可能なのか瞬時に判断できる。_

_①〜③ができていないと…_

_▲下手にタスクを受け、期限内に終わらない量のタスクを抱えることになる。_
_→一人でタスクを抱え込み

元記事を表示

IBM Semeru Runtimes 無償で利用できる新しいJava実行環境

OpenでFreeなJava実行環境を提供してきたOpenJDKのディストリビューション[AdoptOpenJDK](https://adoptopenjdk.net/)は,2021年7月末で更新を終了しました。8月以降は[Eclipse Adoptiumプロジェクト](https://adoptium.net/)および[IBM Developerサイト](https://developer.ibm.com/languages/java/semeru-runtimes/)から配布が継続されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/60041/791317d7-34c2-51cd-24c7-9caf2e0f90f4.png)

AdoptOpenJDKでは,OpenJDKの標準のJVMであるHotSpot VMを含んだものの他に,もう一つのJVMであるOpenJ9を含んだディストリビューションも配布していました。HotSpot VMは,もともとSun Microsystemsが

元記事を表示

enum class の使用例

## はじめに
今まで enum はただ定数を保管しておくためのクラスだと思っていたが、業務の中で自分が知らなかった方法で enum を使用していたし、便利だなと思ったのでメモとして残す。

Java Silver の試験には出てこなかった。

## enum class

(1) enum でもコンストラクタの定義ができる。
・ ここでは引数で受け取った名前と血液型を決定

(2) メソッド `getPesonInfo` で `PesonInfo` を初期化して返す。
・ この enum クラスにセットされた名前と血液型を使用して初期化した`PesonInfo`を返す。

“`java
package enumTest;

public enum Persons {
// (3)
TARO(“田中太郎”,”AB型”),
YUKA(“佐々木優花”, “O型”);

// (1)
Persons(String name, String bloodType){
this.name = name;
this.blood

元記事を表示

【Java】【Ruby】配列内の偶数を数える

 とても簡単ですが、RubyとJavaで、配列内の偶数を数えるプログラムを作りました。「配列を引数として渡すにはどうしたら良いのだろう」という疑問からひとまず作ったものです。

## Ruby

“`ruby
def count_evens(nums)
count = 0
nums.each do |num|
if num.even?
count += 1
end
end
puts count
end

count_evens([2, 1, 7, 8, 2, 3, 4])
count_evens([2, 2, 6, 5, 0])
count_evens([1, 3, 11, 5])
“`

## Java

– メソッドを定義したクラス

“`java
package example;

public class CountNums {
void countEvens(int[] nums) {
int count = 0;
for(int num : nums) {
if (num % 2 == 0) {

元記事を表示

デザインパターン 一言で表現してみた ~GoF本輪読会まとめ~

初投稿です

#はじめに
以前から、[Java言語で学ぶデザインパターン入門](https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%89%88-Java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E7%B5%90%E5%9F%8E-%E6%B5%A9-ebook/dp/B00I8ATHGW/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=Java+%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3&qid=1629379519&sr=8-1)の輪読会を実施していましたが、最近完遂すること

元記事を表示

Fn (OCI Functions) の Function を FDK を使わずに作成する

# はじめに

掲題に関するコードをGitHubに公開していますが、そもそも素直にFDKを使っておけばいいのに、何でこんな一見無駄に思えることをやってみたのかという動機から、実際にやってみて分かった Fn コンテナの通信の仕組みなどについて、諸々お話をしたいと思います。

https://github.com/tkote/fn-netty

https://github.com/tkote/fn-fastapi

# 動機

Fn には各種言語用の FDK (Function Development Kit) があって、これを使えばあまり難しいことを考える必要もなく、シンプルに入力を受け取って処理をして出力を返すことだけを実装すれば済みます。単純な処理であれば実際 FDK だけで十分でしょう。
しかしなから逆に、何で実装が FDK に縛られないといけないのかという疑問の方が強くなってきました。世の中には様々な言語の優れたフレームワークがあるので、それを流用できた方がいいことが多くあるのではないか? 例えば (Javaの例ですいません…) JAX-RS 準拠のフレームワークで F

元記事を表示

Javaのlibrosa的ライブラリjlibrosaをandroid sturioで使う

最近アンドロイドアプリを作ろうとしているので備忘録

#Javaでサクッと音の特徴量求めたいけどどうしよう
pythonだったらLibrosaに頼るところですが、Javaにも似たようなライブラリがないか探してみたところありました!
その名も[jlibrosa](https://github.com/Subtitle-Synchronizer/jlibrosa)!!!
Java版Librosa作ろうぜ、みたいなところがモチベーションで開発されているようです。
androidでどうやって使うかも、[神記事](https://heartbeat.fritz.ai/a-definitive-guide-for-audio-processing-in-android-with-tensorflow-lite-models-d90de896f0c4)にちょいと書かれており、非常に助かりました。
ただライブラリのインストールのところでちょっと躓いたので記事に残しておきます。

#jlibrosaをandroid studioにライブラリとしてインポートする手順
1. githubからjlibrosa

元記事を表示

Spring MVCで、Filterでリクエストボディとレスポンスボディをログ出力するときの落とし穴と対策

# やりたいこと
リクエストボディとレスポンスボディの内容を、Filterでログ出力したい。

“`bash:ログ出力例
… リクエストボディ = param1=value1&param2=value2
… レスポンスボディ = This is reponse body
“`

> 本来は秘匿情報のマスクなどが必要になりますが、この記事ではその説明を省いています。

# 問題
`HttpServletRequest` や `HttpServletResponse` には、ボディを `String` で取得するようなメソッドは存在しません。前者には `getInputStream()` 、後者には `getOutputStream()` というメソッドがあり、これを使えばボディを取得することはできます( `String` にするにはゴニョゴニョ処理が必要なのですが)。

しかし、 `getXxxStream()` メソッドを使ってしまうとボディが消費されてしまい、その後はボディが取得できなくなってしまいます。

なので `HttpServletRequestWrapper`

元記事を表示

paizaテスト環境(Java編)

paiza( https://paiza.jp/ )で問題を解いていると、「自分の好きな値で試したい」となるときがありませんか?
そんな時にはpaiza.IOがあるじゃないか、と言われるかもしれませんが、自分の開発環境で作ってる場合修正の度いったりきたりで煩わしいと思います(思いました)。
そこで私は自分のローカル環境でテキストファイルを標準入力にもってきて、対象ファイル(クラス)のmainメソッドを呼び出す、簡単な処理を一つ作りました。

それがこれです↓

“`java

package skillCheck;

import java.io.FileInputStream;
import java.io.InputStream;

import skillCheck.rankS.S002;

public class CallMethod {

public static void main(String[] args) throws Exception {

InputStream fileStream = new FileInputStream(

元記事を表示

Java 11 (OpenJDK: Eclipse Temurin) を Homebrew で macOS にインストールする

## 概要

– AdoptOpenJDK の後継である Eclipse Temurin を Homebrew で macOS にインストールする。

[Good\-bye AdoptOpenJDK\. Hello Adoptium\! \| AdoptOpenJDK Blog](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/)

> The move from AdoptOpenJDK to Eclipse Adoptium is now complete. The same great community that brought you high quality Java binaries for the last four years at AdoptOpenJDK is now fully productive at Adoptium.

[Adoptium Celebrates First Release \| Adoptium Blog](https://blog.ado

元記事を表示

SpringBootアプリをService(デーモン)として起動する方法

# はじめに
SpringBootアプリは「java -jar」コマンドで実行できますが、ログアウトするとアプリが停止します。
起動し続けるためにはサービスとして起動させる必要があります。
今回はSpringBootアプリケーションをService(デーモン)として起動する手順を記載します。
※デーモンとは常駐プログラムのUNIX系OSにおける呼び名です。

# 環境
OS:CentOS7

# 手順
1. Fully Executable Jarの作成
2. confファイルの作成
3. Service(デーモン)の登録
4. Service(デーモン)の自動起動設定

# 1. Fully Executable Jarの作成
SpringBootアプリを常駐させるために通常のjarファイルは起動スクリプトを書く必要があるが、
Fully Executable Jarは起動スクリプトが組み込まれています。

作成方法は、pom.xmlに次のようなのタグを追加します。

“`xml:pom.xml

元記事を表示

Eclipse 2021-06(4.20.0)でlombok 1.18.20適用時のエラー

# 環境
* java version “16” 2021-03-16

# 現象と対処方法
以下のエラーが発生してjavaのエディタが開けなくなる。

“`java
java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) throws java.lang.ClassFormatError accessible: module java.base does not “opens java.lang” to unnamed module @2b8bb184
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.Access

元記事を表示

SpringBootアプリケーション(Jar)をCentOS7にデプロイ

# はじめに
SpringBootは実行可能ファイルとして jar 形式と war 形式の2種類のファイルを作成できます。
jar 形式はTomcatが組み込まれており、単体で実行可能です。
war 形式はTomcatがインストールされた環境にデプロイし、実行する必要があります。
今回はjarファイルをCentOS7にデプロイする手順を記載します。

# 前提

### 開発環境
IDE:eclipse(4.15.0)
Java:11
ビルドツール:Maven

### サーバー環境
OS:CentOS7(仮想マシン)
Java:11
Apache:2.4.6

# Jarファイル作成
プロジェクト上で右クリック > [実行] > [Maven install] を選択します。
完了後、[プロジェクトフォルダ] > [target]に「XXX.jar」ファイルが作成されます。
※ここではプロジェクト名「demo」のjarファイル作成
![jar作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1798

元記事を表示

OTHERカテゴリの最新記事