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

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

GradleでAntを実行する方法

Javaを使っているプロジェクトで既にAntの資産がある場合など、GradleからAntのbuild.xmlのtargetを実行したい場合などあるかと思います。

そのためのやり方を調べたのでメモがてら綴ります。

# build.xmlをインポート

インポートするにはant.importBuild()メソッドを使います。

▼build.xmlにはechoするtargetを1つ用意

“`xml:build.xml



“`

▼build.gradle側でbuild.xmlを使えるようインポート

“`gradle:build.gradle
ant.importBuild ‘build.xml’
“`

▼build.xmlで

元記事を表示

IntelliJ IDEAでデバッグ時にコンソールが文字化けする

# TL;DR
IntelliJ IDEA起動時のVM引数か、設定の文字コードを変更すれば解決する。

# 序論

みなさん、Eclipse使ってますか。
私はVSCodeでJavaを書いています。Microsoft公式が、Javaの開発をVSCodeでできるように推しているので、割と快適です。

– [Java in Visual Studio Code](https://code.visualstudio.com/docs/languages/java)

(テスト周りのUIとかもキレイで良いんですよね…。C#のnUnit, xUnitあたりもこれくらいきれいで使いやすいUI類をMS公式が提供してくれればよいのですが…)

それはさておき、サーバー周りの設定や、importの管理、ビルド等はEclipse環境でやるほうが便利なことも多いので
全面的にVSCodeへ移行できているわけではないのが難点です。
なので、Intellij IDEAの導入を検討しています。

その際、文字化けでウンウン悩んだのでメモ。

1. IntelliJ IDEA起動
1. `Con

元記事を表示

#01-03 学習内容3日目 Java基礎文法 (2020/03/11)

# 今日の目標
– スッキリわかるJava入門第9章 p.366まで
– 一度やったことのある内容なので、そこまで時間はかからない。
– さっと通す程度にしたいと思います。
– Java練習問題課題を提出
– 送信されてきたメールの語彙を検索。次回プロジェクトで行う内容がチンプンカンプンなのでまずは、語彙の意味するところを解釈して、計画をそれに合わせて練り直そうと思います。(明日)

元記事を表示

Javaエンジニア養成読本 から8~9章 メモアプリを写経した

[Javaエンジニア養成読本](https://amzn.to/2W47WF8) の8~9章に、RDBとJSFをつなぐメモアプリの作成が掲載されていました。こちらを写経したときの自分用メモ

# メモアプリの構成

JSF(Web) > MemoBean、MemoEditBean に書かれた操作をxhtml内から呼べる
 |
MemoBean(view scoped)
MemoEditBean(view scoped) > このへんのview scoped Beanは、MemoとMemoFacadeを保持する。MemoをMemoFacadeに渡して操作をする
 |
Memo(エンティティ) > これはDBから生成させてそのまま。
 |
MemoFacade(エンティティクラスのセッションBean、EJB) > Memoエンティティに関連付けて生成させたFacade。DB上のMemoを操作する
 |
RDBMS

## メモ
– JSFでは、MemoBean, MemoEditBeanが手元にあるように呼べる
– ↑ ここ、まだ違和感あるw
– ビュー(JSF)で必要な操作はvi

元記事を表示

初心者から始めるJava、Hello,world!

#はじめに
この記事は備忘録である。
参考書レベルの内容だが、本記事に掲載するコードについては、
**間違えた**ものが中心となる。これは実際にコーディング中に間違えた部分を掲載し、自分で反省するために投稿するという目的によるもの。
また、後日にJavaSilver試験問題の勉強を兼ねて復習するため、深い部分の話はここでは触れない。

##環境
言語:Java11、JDK13.0.2
動作環境:Windows10

#Hello,worldとは
プログラミングに触ったことがあれば、必ず誰もが書いたことがあるだろう。僕のおぼろげな記憶だと、中学のコンピューター授業で`Basic`か`C`で書いたように思う(このときはプログラムの世界に飛び込むとは思わなかった)。ちなみに僕は`Python`で**「Python3エンジニア認定基礎試験」**を受けるための勉強からだったので、コマンドプロンプトからこう書いた。

“`Python:Hello,world!.py
>>> python
(省略,python3.7.2を起動したときのメッセージ)
>>>print(“Hello,world!”)

元記事を表示

Dataflowでプロファイリングとかダンプとか見てみる

Dataflowのパフォーマンスが気になった時のメモです。
Cloud monitoring、Cloud Profiler、メモリダンプがDataflowで使えます。

# Cloud monitoring
Cloud monitoringでJVMのメモリ使用量などをモニタリングする事が出来ます。

## わかること
* JVMのメモリ使用量
* スレッド数
* その他[agent metrics](https://cloud.google.com/monitoring/api/metrics_agent#agent)

## 試してみる
デフォルトでは無効なので、[–experiments=enable_stackdriver_agent_metrics](https://cloud.google.com/dataflow/docs/guides/using-stackdriver-monitoring#receive_worker_vm_metrics_from_the_agent)で、パイプラインの起動時(もしくはテンプレートのビルド時)に有効にします(※)。
※ expe

元記事を表示

Javaの開発環境をDockerを活用して構築してみる

# はじめに
– Java開発を行うにあたり、環境依存の少なく移行性、再現性の高い開発環境を作りたかった
– 時代はContainerでしょ。と言う事で、手元のMACにDockerで開発環境を構築してみた

# 環境概要
– Java実行環境はもちろん、DBも、ビルド環境もコンテナ化して、いつでもどこでも誰でも同じ環境を実現
– お試し開発なので、IDEは使わず慣れているVScodeを使う
![my_java_devenv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245534/33d57c0a-8793-549c-488e-12386742a912.png)

元記事を表示

JGitで”git log –follow “を実現

Gitの再実装である`JGit`は,JavaのAPIとして利用できることから開発や研究などの幅広い分野で用いられている.
一方非常に癖があることで知られており,良く知られているコマンドを実行するのにも苦労することがある.
今回は,ファイル名の変更を考慮したうえでファイル単位のログを取得する`git log –follow `をJGitを用いてJavaプロジェクト内で実行する方法をメモとして書き残しておく.

## 方法
実は過去に似たような質問がStack Overflowでされていて,それに対する解答もある.
https://stackoverflow.com/questions/11471836/how-to-git-log-follow-path-in-jgit-to-retrieve-the-full-history-includi

一方,この実装はかなりイケてないらしい(https://www.eclipse.org/lists/jgit-dev/msg03286.html ).
JGitの開発者曰く,用意されている`FollowFilter`を使えば良いらし

元記事を表示

内部クラスの種類 staticの有無について

まず、ネストしたクラス(クラスの中に定義するクラス)には次の4種類があります

– ***staticなネストしたクラス***
– ***非staticなネストしたクラス***
– ***ローカル内部クラス***
– ***匿名クラス***

## staticなネストしたクラスと非staticなネストしたクラスについて
– どちらも以下のような用途を持ちます
– エンクロージングクラス[^1]内部だけでオブジェクトを使う場合
– ネストしたクラスの実装を親クラス内に隠ぺいしたい場合
– トップレベルクラスの名前を節約する場合

– staticをつけるのとつけないのとで挙動が微妙に変わります

“`MyObject.java
public class OuterObject{
String outer = “”;

static void method() {
InnerStaticObject innerStaticObject = new InnerStaticObject();
InnerObject

元記事を表示

【アルゴリズム入門】Javaで選択ソートを実装する

備忘録を兼ねて
アルゴリズムそのものの話はあんまりしません

## ソースコード

“`java:SelectionSort.java
class SelectionSort {
public static void main(String[] args) {
int[] data = {30, 60, 70, 90, 40};
sort(data);
for(int element : data) {
System.out.println(element);
}

public static void sort(int[] data) {
for(int i = 0; i < data.length;/*...⒈*/ i++) { int min = i;//...⒉ for(int j = i + 1; j < data.length; j++) { if(data[j] < data[min]) { min = j; }

元記事を表示

Kotlinでクラスを書いてJavaで呼んでみる

去年Kotlinでコード書いたはずだ!とドキュメントを見てみるが、見覚えが無いなぁと思っていたら、去年書いたのはGoだった・・・乗り掛かった舟ということでKotlinを見てみました。

#開発環境はIntelliJ
KotlinのチュートリアルのGetting Startedで「Getting Started with IntelliJ IDEA」とIntelliJが1番に出てくるので流行っているのかな?コミュニティ版を[ダウンロード](https://www.jetbrains.com/ja-jp/idea/download/#section=windows)してインストールします。

![IntelliJ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180278/b7306322-8959-69cc-d9d3-7a5de7bbf4cd.png)

#Kotlinファイル作成&実行
以前見たときよりダークなだけでカッコいい感じがするIntelliJ。
![intellij2.png](https:/

元記事を表示

安定結婚問題を解くアルゴリズムをJavaで作ってみた。

# 安定結婚問題って知ってます…?

男性と女性が3人ずついたとします。

– 男A
– 男B
– 男C
– 女P
– 女Q
– 女R

すると3組の夫婦が作れますよね。
でも異性の好みは人それぞれですし、なるべくみんなが満足するような結果にしたい。

そこで**個人個人がランキングを持っているとします。**

||1位|2位|3位|
|:————-|:—–|:—–|:—–|
|男Aの好み|女P|女Q|女R|
|男Bの好み|女Q|女R|女P|
|男Cの好み|女P|女Q|女R|
|女Pの好み|男C|男B|男A|
|女Qの好み|男B|男A|男C|
|女Rの好み|男C|男A|男B|

さて、例えば下記のようなマッチングを考えたとしましょう。

– 男A ⇔ 女Q
– 男B ⇔ 女R
– 男C ⇔ 女P

男Cと女Pはお互いに1位の相手と結婚しているので幸せです。
しかし、男Aと男Bはどうでしょう。**妻をとりかえっこしたほうがもっと幸せ**ですよね。
そこでマッチングを変更し、下記のようにしたとしましょう。

– 男A ⇔ 女R
– 男B ⇔ 女Q
– 男C

元記事を表示

SpringBootでフォームクラスのバリデーションテスト

javax側が持っているバリデーション(アノテーションで定義出来る)とSpring側のバリデーションのテスト方法について困惑したため、下記の通り纏めます。
ちなみに、javax側のカスタムアノテーションで全て作ればいいじゃんって思うかもしれませんが、思うようにテストが出来なかったため、やむを得ずSpring側で作成しました。

[テスト実行時に、自作したValidation内のフィールドへDIする方法](https://teratail.com/questions/243089)

#やりたいこと
まずは対象となるクラスを確認します。

“`java:PasswordForm.java
package com.ssp_engine.user.domain.model;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;

import org.hibernate.validator.constraints.Length;

import com.ssp_

元記事を表示

インターセプタークラスでkeycloakの認証情報を取得する方法

keycloak認証からユーザーの認証情報を持った状態でAPIにリクエストを投げた際、
controllerクラスのメソッド呼び出される前にintercepter(インターセプター)から
ユーザー情報を取得するのにgetUserPrincipal()メソッドがあることを知らず手こずったのでメモ。

“`intercepterTestClass.java

@Autowired
private UserDto userDto;

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
//

//認証情報を持っていない場合は
if (request.getUserPrincipal() == null) {
System.out.println(“認証情報なしの為、ダミー設定”);
userDto.setUseri

元記事を表示

【Android】Snackbarを任意の位置から表示させる

#概要
Snackbarを画面の下部から出すのではなく、任意の位置から表示させる

#レイアウトファイルでCoordinatorLayoutを入れる
“`xml:fragment_main.xml

元記事を表示

#01-02 学習内容 2日目 (2020/03/10)

#今日の目標
まだ本が手に入っていないので、
– Future Codersのゲーム一つ作る。
– Java練習問題集の8章

#Future codersのゲーム一つ
– 25分でできました。
– 今日は集中力が持たない感じ。後で昼寝しよう。。
– GameOverの判定方法の書き方が勉強になった!
`boolean isGameOver{ return 10 < words.size(); }` - `if (isGameOver){ text("GameOver", 10, 10); }` #Java練習問題集の8章 - クラスの継承 - `public class Student{   String name;   int id;   attend(){} }` - `public class School extends Student{   test(){} }` - メソッドのオーバーライド - 同様のメソッド名で中身を変更するだけ。 - 変更前のメソッドが利用したかったら、super.メソッド名として呼び出す。 #達成度 今日の目標達成! メソッドの

元記事を表示

初心者から始めるJava、クラス宣言・オブジェクト生成

#はじめに
この記事は備忘録である。
参考書レベルの内容だが、本記事に掲載するコードについては、
**間違えた**ものが中心となる。これは実際にコーディング中に間違えた部分を掲載し、自分で反省するために投稿するという目的によるもの。
また、後日にJavaSilver試験問題の勉強を兼ねて復習するため、深い部分の話はここでは触れない。

なお今回は間違えを扱わない。クラスの話はJavaにおいて重要なうえ、狙って間違えられるほど僕の理解も進んでいない。定義を正しい形で再確認するため、ご容赦いただきたい。
##環境
言語:Java11、JDK13.0.2
動作環境:Windows10

#クラス

“`Java:Hello,world!.java
class helloWorld
{
public static void main(String[] args)
{
System.out.println(“Hello,world!”);
}
}
“`
これは一番簡単なプログラムであり、Javaにおける`Hello,world!`出力を行うものである。最初の行に出てきているが

元記事を表示

Rim fdraw As require ’pop->File->Draw’

#ファイルの有無を調べなければインストール
“`
Sik pop @popのインストール
echo Sik pop @こうすれば同時にログも取れて安心(あればtrueなければfalse)
“`

“`
Rim require “pop” @ライブラリの取り込み
Rim fdraw As require “pop->file->draw”
“`

Rimはファイル自身。requireは文字列の名前空間を探す。asは別名を作成

“`
@代入にはset簡単でしょ
n set loop t of range 10 to if t->mod 2 = 1:{1,t->tostr}:{2,t->tostr}
call T t->add1 n 0

@メソッド定義
Trait T
bind f h m n = h->each->(m)->append n
Trait end

@メソッド定義
Method T extends Trait
@めんどくさけりゃusing ? repeat $だぜ!
using bind repeat $
$add1 h m = f h m 1 @h->each

元記事を表示

Ubuntuで使う言語のインストール方法とか環境構築とか

最近はバックエンド言語毎にVMで環境用意して勉強したりしてて、その環境構築方法の管理を最近はGistでしてるのですが、何となくQittaに。※※但し、Gistは英語で書いてるので。

# environment
– host OS: Windows
– VM: Virtual Box with Vagrant
– Ubuntu 18.0

[**CUIまたはGUIの仮想環境をUbuntuを使って構築するのはこっち。**](https://qiita.com/OriverK/items/115c0c4d3c25c89327bc)

# Ruby on Rails
## Install latest version
“`sh:terminal
# install in one time
sudo apt install autoconf bison build-essential libssl-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev

# install rbenv
# rbenv

元記事を表示

Spring BootでモックしたいBeanがテスト対象Beanで宣言されてない場合のMock化をする

# やりたいこと
呼び出しが、以下のような感じ
`Controller -> Service -> Repository -> Component`
`Controller`からとか`Service`からテスト書く時に`@Mock`と`@InjectMocks`では`Component`のBeanをモック化できなかったので`@MockBean`を使用することに

# 環境
– 諸事情あり、JUnit4を使ってます

“`build.gradle
plugins {
id ‘org.springframework.boot’ version ‘2.2.5.RELEASE’
id ‘io.spring.dependency-management’ version ‘1.0.9.RELEASE’
id ‘java’
}

group = ‘com.example.mock’
version = ‘0.0.1-SNAPSHOT’
sourceCompatibility = ‘1.8’

repositories {
mavenCentral()
}

dependencies {

元記事を表示

OTHERカテゴリの最新記事