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

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

外部ライブラリの入れ方

外部ライブラリを入れる方法がわからなかったので、備忘録的なメモとして残しておきます。

# 環境
 Windows7
 Adopt Open JDK1.8

# 方法
 まず使用したい外部ライブラリのjarファイルをダウンロードしてきてください。

 次にそのダウンロードしてきたファイルをAdopt Open JDK1.8のフォルダ内のjre¥lib¥extフォルダにダウンロードしたjarファイルを配置することで使えるようになります。

 import文が必要なら適宜ソースにimportして使ってください。

# 終わりに
 検索してもそのままズバリを書いている方法がなかなか出てこなかったので書きました。
 もし間違いなどがありましたら指摘していただければ幸いです。

元記事を表示

Retrieve the first day of week in current locale(今日は何曜日?)

Some places(country) start the week with Sunday, some with Monday, maybe some with others, IDK,
some this magic let java library find the right one for us.
現地の週の始まりの曜日を計算する(月曜だったり日曜だったり、他もあり)

“`
DayOfWeek firstDayOfWeek = WeekFields.of(locale).getFirstDayOfWeek();
LocalDate firstDay = today.with(TemporalAdjusters.previousOrSame(firstDayOfWeek));
“`

*only serve as memo so actual syntax may break

元記事を表示

【Gradle】jarファイル内にクラスファイルが存在しなかった話

## 事象
下記のようなbuild.gradleファイルを用いてビルドを行った際に、jarファイルが生成されるが、その中身にクラスファイルが存在していませんでした。

“`gradle:build.gradle
apply plugin: ‘java’

group = ‘com.test.foo’
version = ‘1.0.0’

sourceCompatibility = ‘1.8’
targetCompatibility = ‘1.8’

compileJava {
options.encoding = ‘UTF-8’
}

repositories {
mavenCentral()
}

dependencies {
implementation(‘org.slf4j:slf4j-api:1.7.21’)

testCompile ‘junit:junit:4.12’
testCompile ‘org.hamcrest:hamcrest-library:1.3’
}
“`

## 原因と解決策
今回の事象の原因は、javaファ

元記事を表示

bitFlyer Lightning エラーコード集

bitFlyer Lightning エラーコード集

bitFlyer LightningのAPIを叩いていて発生したエラーコードとその対応策をまとめる

1. {“status”:-100,”error_message”:”Invalid product”,”data”:null}

  【原因】リクエストヘッダにコンテンツタイプの指定なし

  privateAPIを利用する際、リクエストボディにJSON形式の値を詰めると思うが、その値がどのような形式かを明示的に指定してやる必要がある

“`
connection = (HttpURLConnection) url.openConnection();
(中略)
connection.setRequestProperty(“Content-Type”, “application/json; charset=utf-8”);
“`

元記事を表示

BeamのDoFn/SimpleFunction/SerializableFunction

DoFn/SimpleFunction/SerializableFunctionは、Beamの抽象クラス/インターフェイスです。
機能が似ており、時々忘れるのでメモです。

# [DoFn](https://beam.apache.org/releases/javadoc/2.15.0/org/apache/beam/sdk/transforms/DoFn.html)
## 説明
ParDo.ofの引数に指定してTransformを定義するためのクラスです。
アノテーションを設定し制御することが出来ます。

* ProcessElement
* 入力から出力の変換処理(任意の数の出力)。
* StartBundle/FinishBundle
* [bundle](https://beam.apache.org/documentation/runtime/model/)単位の処理
* Setup/Teardown

DoFnが満たすべき性質などについて、ParDoの[ドキュメント](https://beam.apache.org/releases/javadoc/2.15.0/or

元記事を表示

[Ubuntu]Nukkitのサーバーを立てる

NukkitをUbuntuで立てます
半分前記事のコピーです

##サーバー環境
・ConoHa VPS
・OS Ubuntu 18.04
・メモリ 512MB
・ストレージ SSD 20GB
・CPU 1core

##Javaインストール
Nukkitの動作にはJavaが必要です
今回は例として`openjdk-11-jre`をインストールします

“`
$ sudo apt-get install openjdk-11-jre
“`

##ポート開放
今回は例として19132ポート。
コマンドで打つべきなのは`#`とか`$`が先頭についてる奴だけです
つまり下で`Rules updated`って書いてあるのは打たなくていいんですわよ

“`
$ ufw allow 19132/udp
Rules updated
“`
##ユーザー作成
今回は例として`nukkit`という名前のユーザーを作ります

“`
$ adduser nukkit
Adding user `nukkit’ …
Adding new group `nukkit’ (1004) …
Addin

元記事を表示

【2020年度版】Struts2の入門系記事まとめ

# はじめに
業務系プロジェクトでは未だに現役で動いていることもあるStruts2さん。
2020年のこのご時世にまさか自分が触ることになろうとは…。

まったく触ったことがないのでHelloWorldをやってみた。
割と最近まとめてくれている優しい方がいたので触る分には困らなかった。
参考になった記事を紹介する。

## 自分のスペック
* Java経験が4年くらい
* Webシステム開発は1年くらい
(SpringBootは分かる。新人の頃にSpringMVCも使っていたがよくわからない)
* ぶっちゃけサーブレットとJSPはあんまり分からない

APIの開発はできるけど、テンプレートを使うやり方がよく分かってない。

## 環境情報
* Windos10
* Eclipse : 2019-12(Pleiades All in One)
* XAMPP : XAMPP for Windows 7.3.11
* Java : 1.8.0_221
* Struts : 2.5.22(最新)

## 参考記事集
* [【超初心者向け】Struts2超入門 – 2018年版 – Qii

元記事を表示

Javaのチェック処理あれこれ

# はじめに
プログラムを作成する上でチェック処理は欠かせませんが、ここではJavaにおけるチェック処理あれこれをまとめました。

## 前提条件
環境:Spring Framework

## チェック処理

### オブジェクト全般チェック

“`java
import java.util.Objects;

class Check {

void execute() {
// message == null
if (Objects.isNull(message)) {
}

// message != null
if (Objects.nonNull(message)) {
}

// message == nullの場合にNullPointerExceptionを投げる
Objects.requireNonNull(message);
}
}

“`

### 文字列チェック

“`java
import org.springf

元記事を表示

SeleniumでShiftRightとShiftLeftを使い分ける

# 3行でわかる概要
* JavaのSelenium(4.0.0-alpha-4)の`WebElement::sendKeys`で左右Shiftキーを使い分けようとした際に少し詰まった
* 用意されている`Keys`は`SHIFT`/`LEFT_SHIFT`の中身が同じ
* `Keys`を使わずに文字列で`”ShiftRight”`と指定すると右Shiftとして認識される

# 問題

JavaでSeleniumを使用してkeyDownさせる場合、下記のようなコードを書く。

“`java
public void sendKey(WebDriver webDriver, CharSequence… keys) {
WebElement element = webDriver.findElement(By.className(“hoge”))
element.sendKeys(keys);
}
“`

`WebElement.sendKeys`は引数に`CharSequence…`を取るが、用意されているenum`Keys`を使用することが多い。
ただし、右Shif

元記事を表示

WebFluxのフィルタを実装してみる

引き続きWebFluxの話です。
前回までで主にController〜Service層でのリアクティブプログラミングの実装を紹介しました。

今回はリクエストの前後の共通処理として利用するフィルタの実装例を紹介します。

## FilterではなくWebFliterを実装する
Spring MVCでは `javax.servlet.Filter` を実装しますが、WebFluxでは `org.springframework.web.server.WebFilter` を実装します。

以下に、リクエスト処理の前後でログ出力するだけの、簡単なフィルタをそれぞれ実装してみました。
違いをみてみましょう。

### Spring MVCのFilter実装例

“`java:リクエスト処理の前後にログを出力するフィルタ(Filter)

@Slf4j
public class TimestampFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletRe

元記事を表示

Android StudioでExpandableListView(折りたたみリスト)を使う方法

##はじめに
折りたたむことができるリストのメモになります。

##コード
“`string.xml

ExpandableListView

“`

“`activity_main.xml

元記事を表示

[自分用] javaプログラミング基礎

#基礎構文
##変数・定数宣言

“`java
String str = null; //変数
final String STR = “msg”; //定数
long l = 1111111111L; //long型は最後にLで宣言
float f = 1111.111F; //float型は最後にFで宣言
double d = 1111.111; //小数点はdoubleになる
char c = ‘c’; //char型は”で
str = “a\na\ta”; //\n:改行 \t:タブ

//参照型としてintを宣言する
Integer I = new Integer(32);
int n = I.intValue();

//宣言の仕方の名前
Integer I2 = 2; // auto boxing
int i = 1; // auto unboxing
“`

| 型 | 初期値 |
|:—————–|——-

元記事を表示

StringUtilsの使えるメソッド整理

StringUtilsには使えるメソッドが一杯あったので使って便利と思ったものを整理しました。
#StringUtilsとは
https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

String型の文字列編集で色々と便利な操作をまとめたメソッドです。
Stringのメソッドとは違いヌルポが起きないように考慮してくれています。
nullチェックいらずになります。
StringUtilと似てるから注意

##isEmptyとisNotEmpty
isEmptyはStringでもあるけどこっちのはnullを許容、falseを返してくれる。
isNotEmptyはisEmptyの逆。

“`isEmpty.isNotEmpty
String a = “1234”;
String b = “”;
String c = null;

try {
System.out.printl

元記事を表示

【Java】分岐と繰り返し

# if文
:sunny: 分岐を行うことができる
:sunny: if のうしろの () には分岐条件を記入
:sunny: 条件式とブロックから成り立つ

分岐を行うことができるっていうのは、たとえば・・・

家に食パンある?
 → ある
  じゃあトーストにして食べよう!
 → ない
  パン屋へ買いに行こう!

のように条件によってプログラミングの処理が変更できるようにすることです。

“`例.java
public class Main {
public static void main(String[] args) {
boolean bread = true;
if (bread == true) {
System.out.println(“じゃあトーストにして食べよう!”);
} else {
System.out.println(“パン屋へ買いに行こう!”);
}
}
}
“`

3行目の 真偽値をあらわすboolean型の変数 bread に true(falseでもOK) を記入し

元記事を表示

【Java】文字列の比較と&& と ||

# 文字列の比較
“`例.java
number == 0
“`

上記のようなコードがあったとします。
意味としては変数 number に 0 が代入され、右側の 0 と等しい という意味になります。

では文字の場合は・・・?:thinking:

“`例.java
fruit == “りんご”
“`

になるんじゃないの??:thinking: と思ってしまいます。
じつは間違いです。
Java の場合は、文字列は == では比較できないということになっています。
ではどうするのかというと・・・

“`文字列の比較.
文字列型の変数.equals(比較相手の文字列)
“`

となります:smile:
なのでさっきのコードは

“`例.java
fruit.equals(“りんご”)
“`

となります:smile:

余談ですが、文字列に == を使ってもコンパイルエラーは起きません:sweat_smile:
ただ実行できるけど動きが変になるというタチの悪い不具合が起こります:sweat_smile:
コンパイルエラーが起きないだけにエラーをみつけるのが

元記事を表示

【Java】初心者用基礎命令文

# System.out.print(表示したい文字や数字など)
:sunny: 改行することなく画面に文字を表示する

普段よく使う System.out.println で作成すると・・・

“`例.java
public class Main {
public static void main(String[] args) {
String animal = “いるか”;
System.out.println(“私の好きな動物は”);
System.out.println(animal);
System.out.println(“です”);
}
}
“`

“`コンソール.
私の好きな動物は
いるか
です

“`

このように改行されて出力されます。
System.out.println → System.out.print に変更して出力してみると・・・

“`例.java
public class Main {
public static void main(String[] args) {
String animal = “い

元記事を表示

【Java】計算のしくみと演算子と型変換

# Javaの計算のしくみ
“`
5 + 4
“`

これは説明なくそのままです。
5 と 4 を足し算して 9 の答えをJavaが出してくれます。

では

“`
5 + 4 – 3
“`

の場合はJavaはどのように計算をするか?:thinking: というと、まず

5 と 4 を足し算して 9 を求めます。
そのあと 9 – 3 で引き算をして 6 を求めます。

ちなみにこの 5 と 4 と 3 を**オペランド**といい
+ と – を**演算子**といいます。

Javaが式に従って計算処理することを**評価**といいます。
オペランドと演算子を使ってだした計算結果を**化ける**といいます。
さっきの式の 5 + 4 – 3 でいうならば、まず 5 + 4 を評価して 9 に化ける。
そのあと 9 – 3 を評価して 6 に化ける。
という感じです:smile:

“`
5 + 4 * 3
“`

掛け算が混ざった計算式。
学校で習った順番と同じです:smile:

まず 4 ✕ 3 で評価して 12 に化けます。
そして 5 + 12 を評価して 17

元記事を表示

Struts2 iBasis DB連携ライブラリ関係のパス

##Spring設定ファイル
**・applicationContext.xml**
web.xml の中の\タグの中で任意で指定する。
WEB/INF/classes/ 直下がデファクト?

##JDBC (DBアカウント等)設定ファイル
**・datasource.properties**
ファイル名は任意。datasource.propertiesやjdbc.propertiesなど。
applicationContext.xmlの中の\でパスを定義する。
applicationContext.xmlの中の\タグでこのプロパティファイルの中で指定したDB情報をDAOjavaBeanクラスとバインドする。

##iBasic連携設定
**・sqlMapConfig.xml**
applicationContext.xmlの中の\タグで任意のパスを指定。
iBasisでのSQL文が書かれたxmlファイルパ

元記事を表示

JAVA(Map)

【Map】
キー(値につける名前)に対してキーに紐づく値を保持することができる。

Mapはインターフェースなので、インスタンスを生成するために実装クラスを使用する必要がある。
今回はよく使用されるHashMapクラスを使用。
初期化を以下のようにして行う。
Map<キーの型名, 値の型名> オブジェクト名 = new HashMap<>();

Map map1 = new HashMap();

次に「put」を使用して値を追加する。

map1.put(“春”, “サクラ”);
map1.put(“夏”, “ヒマワリ”);
map1.put(“秋”, “キンモクセイ”);
map1.put(“冬”, “シクラメン”);

「get」を使用して値を出力すると以下のようになる。

String name1 = map1.get(“冬”);
System.out.println(name1);

[シクラメン]

元記事を表示

JavaとPythonの基礎文法比較

  

#はじめに#
JavaとPythonの基礎文法を比較してみました。
Javaの文法が汚かったり、違う部分があればご指摘いただけるとありがたいです!

#目次#
[1.出力](#1出力)
[2.変数](#2変数)
[3.文字列と数値の結合](#3文字列と数値の結合)
[4.if文](#4if文)
[5.for文](#5for文)
[6.while文](#6while文)
[7.forとwhileでbreak, continue](#7forとwhileでbreak-continue)
[8.list](#8list)
[9.辞書](#9辞書)

#1.出力#

“`python:python
print(‘123’)
print(123)
>>>123
>>>123
“`

“`java:java
public class Main {
public static void main(String[] args){

System.out.println(“123”);
System.out.println(12

元記事を表示

OTHERカテゴリの最新記事