JAVA関連のことを調べてみた2019年11月28日

JAVA関連のことを調べてみた2019年11月28日
目次

Sourcetrail(win版)をJavaコードで使ってみる

#Sourcetrail(win版)をJavaコードで使ってみる

https://qiita.com/cloudsnow/items/7d7f3b859186667379ef

macOS版を参考にしてやってみました。

最終確認してCreateを選択までしたのですが動作しなかったのでどこがおかしいか調べてみると
)

Editにあるpreferencesを開くとjava Path(64Bit)のアドレスパスが違ったので
“C:/Program Files/Java/jdk1.8.0_102/jre/bin/server/jvm.dll”に変更したら動作しました

元記事を表示

stream中にエラーハンドリングできなくてこまるやつ

##例外catchしてくださいって怒られるやつ

ぐぬぬ一行で書けない…

っていうのをどうにか綺麗に書くためのやつです

##準備
“`準備.java
/** ——————–準備——————– */
/** 例外を投げるインターフェース */
private static interface Throwable {
S apply(T t) throws NullPointerException, NumberFormatException, Exception;
}
/** 例外に応じて実行する関数を切り替えるメソッド */
private static Function switchFunction(Throwable tf, BiFunction npe,
BiFunction nfe, Function other) {
return v -> {

元記事を表示

Java Artery-数値配列の処理-集約(最大値、最小値、合計、平均、標準偏差)、変換(移動平均、変化率など)、ヒストグラムなど

目次 ⇒ [Javaアルゴリズムライブラリ-Artery-サンプル](https://qiita.com/artery/items/6ae578a6665457db4511)

#概要

ArMathには計算処理のメソッドが集められている。その中から配列に関係するものを紹介する。本稿の内容は次の通り。

・関連enum、インターフェースの説明
・集約処理-最大値、最小値、合計、平均、標準偏差
・変換処理-指定数値との加減乗除
・変換処理-指定ロジックによる変換
・変換処理-移動平均、変化率など
・二つの配列の合成-二つの配列の値の加減乗除
・二つの配列の合成-二つの配列の値の計算(ロジックは外部指定)
・ヒストグラムの作成-境界値は直接またはArValidatorで指定する
・おまけ(逆順とランダマイズ、Map・二次元Map上の数値の加減乗除)

ラッパー型配列とプリミティブ型の配列を変換することが必要だったりするが、(紹介はしないが)このようなメソッドも含まれている。一次元配列と二次元配列の変換もできる。

なおArListには、ここに示したようなメソッドが用意されているが、ArL

元記事を表示

Java (WebSphere Application Server)メモ[1]

# WebSphere Application Server とは
> IBMが開発・販売する、Java EE対応のアプリケーションサーバであり、IBMソフトウェアのWebSphereブランドの中核をなす製品(以下、WASと略)

# JSPとどう連携して使うのか

![r5fig4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57249/209614b0-1a07-7a0f-5e9a-0971ae87a927.gif)

1. ログイン画面を表示するJSPを作成する
2. ようこそ画面を表示するJSPを作成する
3. ユーザー情報画面を表示するJSPを作成する
4. ユーザー情報を保存するBeanを作成する

> それぞれのサーブレットでは、データをBeanに保存し、画面を表示するためにJSPを呼び出す。

![r5fig5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57249/cc3c

元記事を表示

HomebrewでインストールできるJDKまとめ(2019年11月時点)

## はじめに

AdoptOpenJDK と Cask-Versions が衝突するなどしていた、homebrewでインストールできるJDK界隈ですが、[一応の整理がついた](https://github.com/Homebrew/homebrew-cask/pull/63537)ようです。

ここでは、その記念(?)にhomebrewでインストールできるJDKとそのコマンドをまとめておきます。

なお、この記事の執筆時点で、最新バージョンは Java 13 です。

## Homebrew

### openjdk

“`sh
brew install oepnjdk
“`

[OpenJDK](https://openjdk.java.net/) の最新バージョンが**手元でビルド&インストール**されます。
ただし、`keg-only` 指定なので、インストール後に `$JAVA_HOME` 用のフォルダへのシンボリックリンクを貼る必要があります。

“`sh
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.

元記事を表示

再帰処理を使ったファイルの削除【Java】

# はじめに
本記事では再帰処理を用いてファイルやディレクトリを削除する方法を紹介します。
初投稿なのでご意見等あればコメントお願いします!

## 実装

“`java
/**
* ファイルを再帰的に削除する
* @param file 削除するファイルまたはディレクトリ
*/
public static void deleteFile(File file) {

// ファイルが存在しなければ終了
if (!file.exists()) {
return;
}
// ディレクトリであれば子を削除
if (file.isDirectory()) {
for (File child : file.listFiles()) {
deleteFile(child);
}
}
// 対象のファイルを削除
file.delete();
}
“`

ディレクトリであれば子のファイルオブジェクトを先に削除することで空の状態で削除することができます。

### おまけ
再帰処理が使えて喜んだのも束の間、やっぱり先駆者様がたくさんいました…笑
これ

元記事を表示

Java学習5日目

スッキリわかるjava入門 第2版 p250まで

5章のまとめの練習問題で正しいメソッドの作成方法を学んだ。戻り値(return)がある場合はvoidではなく戻り値の型にする事 returnの前に返す値をメソッド内で定義してから戻り値に返すようにする

JDKを用いた開発の全体像

①テキストエディタでソースコードを作成
②javacコマンドでコンパイルしクラスファイル(機械語に変換)
③javaコマンドで実行され、黒い画面(コマンドプロンプト)に実行結果が出力される

Javaプログラムの完成品は、複数クラスファイルの集合体なので、一つのクラスファイルで作成されている訳ではない。なので誰かに配布する場合は、全てのクラスファイルを渡す必要がある

別のクラスからメソッドを呼び出す場合は、クラス名.メソッド名()で呼ぶ
パッケージには親子関係や階層関係はない、package文がないクラスにはデフォルトパッケージが指定されてimport文でインポートすることはできない。別のパッケージからメソッ

元記事を表示

手元にあるjarファイルがどのバージョンのjavaで利用できるのかを調べたい

手元にあるjarファイルがどのバージョンのjavaで利用できるのかを調べるにはどうすればよいでしょうか?

実をいうと、jarファイルそのものはビルドのバージョンを有していません。jarファイルというのはclassファイルやpropertiesファイルやそのほかファイルをアーカイブしたものにすぎません。たとえるなら、jarはtarやzipの親戚とでもいえばよいでしょうか。したがって、Javaの特定のバージョンでそのjarファイルが利用可能かどうかを調べるには、jarファイルそのもののバージョンではなく、そのjarファイルに格納されているclassファイルがどのバージョンのjavacでビルドされたのかを見てやる必要があります。

ここでは調査方法の例として`commons-collections4-4.4.jar` ([Apache Commons Collections v.4.4](https://commons.apache.org/proper/commons-collections/)) がどのバージョンから利用できるのかを調査してみます。

まず`jar`コマンドでjarフ

元記事を表示

自主勉0日目

プログラミングの学習が開いてしまい、すっかり忘れてしまうのが嫌なので、自主勉することにしました。
今日は風邪で寝ながらなので、とりあえずアカウントだけ作ってみた。

わたしのjavaの先生は最高に面白い、ダイハードな先生だ。
コードがスラスラ書ける気にさせてくれる、という面でも先生としてすごいと思う。

いくつかプログラミング言語の記事を読んでみたが、短期間で、オブジェクト指向を理解させてくれたんだなと実感した。
一番だいじなことを、限られた時間の中で、最優先で理解させてくれた先生の教え。
でも、離れていると忘れてしまう!
なんてもったいない!

というわけで、できるだけ毎日、なにかしら勉強して、記憶を維持していきたいと思う。

元記事を表示

Javaプログラミング (インスタンスメソッド)

#クラスメソッド
ここではクラスメソッドについて紹介します。
クラスのなかの変数でstaticが宣言時に頭についたものをクラス変数と言いました。同じように、メソッドでstaticが宣言時に頭についたものをクラスメソッドと言います。クラスの構成やメソッドの書き方や呼び出し方がわかれば読めると思います。また、アクセス指定子も説明は省きます。(知らなくても読めると思いますが。)
##クラスメソッドの特徴
クラスメソッドは呼び出すときにはインスタンス化をしません。呼び出すときはクラス名を使います。それによって便利なことや注意するべきことがあります。
###クラスメソッドの構成
####クラスメソッドの定義の仕方
クラスメソッドの書き方は次のようになります。

“`java
public class クラス名{
public static 戻り値の型 メソッド名(引数の型 引数){
// メソッドの中身
}
}
“`
staticがつくだけです。なので、構成というほどのものはありません。
####クラスメソッドの呼び出し方
クラスメソッドはインスタンスせずにクラス名を使って

元記事を表示

Java – SpringBootプロジェクトをGAEへデプロイする

# 構成
今回は以下の構成をそれぞれ作成します

– Java 8 のスタンダード環境
– Java 8 のフレキシブル環境

# 前提
– Java SE 8 SDK、Java SE 11 SDKのインストールが完了していること
– Mavenのインストールが完了していること
– GCPの利用が可能なこと(無料トライアルでもOK)
– Google Cloud SDKの設定が完了していること

別途まとめていますのでよろしければご参考ください:relaxed:
[GCP – 無料トライアルのはじめ方](https://qiita.com/so_heee_/items/a0405ff7cab0f8248e5a)
[GCP – Google Cloud SDKのインストール](https://qiita.com/so_heee_/items/f4f33b09ff80f6ed13e2)

# 開発環境の用意
まずは開発環境を用意します。サポートされている開発環境はIntelliJ IDEA、Eclipse(STS)、ビルドツールはApache Maven、Gradleになります。

##

元記事を表示

Javaで電卓アプリ作ってみる 〜ウィンドウの中に表示領域を作る

Javaの開発環境は、Ubuntu 18.04にインストールしたOpenJDK 11.0.4を使用しています。

[前回の記事](https://qiita.com/tsweblabo/items/23e7e858cc81ccabed59)では、アプリケーションウィンドウを表示させました。今回はウィンドウの中の表示領域を作っていきます。
前回のコードは、とりあえずJframeを使ってアプリケーションウィンドウの表示が目標だったので、コードの全てをmainメソッドの中に書いてましたが、今後の書きやすさ・読みやすさを考えてMyFrameメソッドを作り、mainメソッドの中でインスタンス化しています。

“`java:MyFrame.java
import javax.swing.JFrame;

public class MyFrame extends JFrame{
public static void main(String[] args) {
MyFrame frame = new MyFrame(“JavaSwingのテスト”);
fram

元記事を表示

Javaで電卓アプリ作ってみる 〜アプリケーションウィンドウを表示させる

まずは、JavaSwingを使って、アプリケーションウィンドウを表示させるところから初めていきます。

Javaの開発環境は、Ubuntu 18.04にインストールしたOpenJDK 11.0.4を使用しています。

## JFrameでウィンドウ表示

“`java:MyFrame.java
import javax.swing.JFrame;

public class MyFrame extends JFrame{
public static void main(String[] args) {
JFrame frame = new JFrame(“JavaSwingのテスト”);
frame.setVisible(true);
// x(バツ)ボタンでアプリケーションを終了させる。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウィンドウの表示位置とサイズ (座標x, 座標y, 幅, 高さ)
frame.s

元記事を表示

Javaで電卓アプリ作ってみる

Javaの開発環境は、Ubuntu 18.04にインストールしたOpenJDK 11.0.4を使用しています。

以前勉強していたJavaを使ってGUIの電卓アプリを作ってみます。
GUIの部分はjavax.swingを使います。

下記目次は、当面の目標としてざっくりしたものを挙げておきます。進行に合わせて随時更新していこうと考えています。

不慣れな部分も多々あると思うので、プログラミング用語など間違った使い方や解釈をしている部分があるかもしれません。その時はアドバイスいただけると幸いです。

## 目次
1. [アプリケーションウィンドウを表示させる](https://qiita.com/tsweblabo/items/23e7e858cc81ccabed59)
1. [ウィンドウの中に表示領域を作る。](https://qiita.com/tsweblabo/items/27ffa4802762b12ff896)
1. ボタンの追加

### 参考サイト

– [Java® Platform, Standard Edition & Java Development K

元記事を表示

JJUG CCC 2019 fallに参加してきました

2019年11月23日(土)に開催されたJJUG CCC 2019 fallに初めて参加してきましたので、感想をまとめてみました。

#はじめに
会社の先輩社員に教えていただいたことをきっかけに、JJUGの存在を知りました。
実際に記事にもされているので、ぜひご覧ください。
こちらの記事にJJUGの概要がありますので、JJUGについての説明は省略します。
記事:[JJUG CCC 2019 Spring に参加してみた](https://qiita.com/evid/items/4bcd43454aaff62dd676)

#自己紹介
簡単に自己紹介をさせていただきます。
このICT業界に入ってまだ1年目の新人です。
プログラミングを学び始めたのは、入社してからです。
Javaに触れたのは新入社員研修の時のみで、最近は主にC#の勉強をしていました。

#なぜ参加したか
上記で述べたとおり、Javaにはほとんど触れたことがありませんが、エンジニアのコミュニティに興味があったので参加してみました。コミュニティに参加して、ゼロに等しいモチベーションをアップさせなければ…!という思いもありまし

元記事を表示

【初心者向け】ラムダ式とStreamAPIについて

Java8から導入されたラムダ式の記述について備忘録と共に初心者向けに解説していきます。

# ラムダ式とは
ラムダ式とは、Java8から導入された、メソッドを変数のように扱うことのできる記述様式のことです。
ラムダ式を使用することで、記述が簡略化でき、より読みやすいコードを書けるようになります。

また、StreamAPIなどの関数型インターフェースを使用する際にラムダ式を使用すると、非常に簡単に記述ができます!!

#ラムダ式の記述方法
まずは早速ですが、ラムダ式の実際の記述方法について説明します。

“`RunnableLamda.java
public static void main(String[] args) {
Runnable runner = () -> System.out.println(“Hello”);
runner.run(); //Hello
}
“`

上記はrunnableインターフェースをラムダ式を用いて記述したものです。
匿名クラスから、さらに「new Runnabl(){}」と「public void run」を省略した形になります

元記事を表示

Reactive StreamsとJDK 9 Flow APIの入門メモ

# 概要

この記事はReactive Streamsと、JDK Flow APIを調べたときのメモになります。

`Flow API` (java.util.concurrent.Flow) はJDK 9([JEP 266] (http://openjdk.java.net/jeps/266))で導入されたAPIで、`Reactive Streams Special Interest Group` (SIG)というワーキンググループが作成した仕様([Reactive Streams] (https://www.reactive-streams.org/))に対応しています。
この仕様に対応しているJVMのライブラリには[Akka Streams] (https://akka.io/)(Lightbend, Inc.)、[ReactiveX/RxJava] (http://reactivex.io/)などがあり、Spring WebFluxで使われている[Project Reactor] (https://projectreactor.io/)(Pivotal Software, In

元記事を表示

Spring のBean Validaiton 〜びーん ばりでーしょん〜

# Bean Validation

Spring Frameworkを使用し、REST通信を基本としたサンプルを記載する。

## びーん ばりでーしょんって?
クライアントから送信されたRequestBodyの値をチェックする。
チェック内容は何種類かある。

– Null
– 空文字
– 文字数
– パターン(正規表現)
– 最大サイズ
– 最小サイズ

などなど…

## とりあえずサンプル

コントローラでただバリデーションを実行するだけのサンプル。

“`java:SampleContorller.java
@RestController
@RequestMapping(“validation”)
public class SampleController {

// バリデーションするだけ
@PostMapping
public SampleResource validation(
@RequestBody @Validated SampleResource resource) {
return resource;
}
}
`

元記事を表示

JJUG CCC 2019 Fallに参加してきました.

#JJUG CCC 2019 Fallに参加してきました.
Javaを初めて半年,イベントに初参加!!
##Javaで学ぶオブジェクト指向プログラミングの基礎知識
[発表者の資料](https://www.slideshare.net/masuda220/java-objectoriented-programming-primer)

– オブジェクト指向の考え方がソフトウェア開発に活かせる
– 増田さんの考えるオブジェクト指向プログラミングのこだわり
– モジュール性
– 型(値の種類)でプログラムを分割
– 型でモジュールを作る
– シームレス性
– 一連の活動の継ぎ目をなくす開発手法
– 持ち帰ってほしい言葉
– 型
– カプセル化
– 2つのモード
– モード1
– 定義済みの型だけを使う
– 標準ライブラリや組み込み型のみ
– 型の消費者
– モード2
– 独自の型を定義する
– 型の生産者
– オブジェクト指向プログラミングのスキ

元記事を表示

REST通信には、げきつよRestTemplateを使うべし

# RestTemplate

## RestTemplateって?

RestTemplateは、REST API(Web API)を呼び出すためのメソッドを提供するクラス。
Spring Frameworkが提供するHTTPクライアント(HttpClientをラップしている)。

まとめると、、、REST通信が簡単にできる便利部品。

DTOからJson形式のリクエストに変換する処理や、Json形式のレスポンスをDTOにバインドする処理をしてくれる。
データ形式はJson以外にXmlやFormなど様々対応していて、カスタマイズも可能!!

### DTO => Json

“`java:DTO
@Getter // (1)
@Setter // (1)
public class SomeRequestResource {
private String message; // (2)
}
“`
(1) ライブラリの`lombock`を使用してGetter, Setterを自動生成
(2) Json変換を後に反映されるフィールド

“`json:Json
{
“mes

元記事を表示

OTHERカテゴリの最新記事