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

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

Tomcatサーバーの構成を公開できませんでした。

#自己紹介
みなさん初めまして。**Falchan**と申します!
今年の4月から未経験からJavaの学習を始めてるバチバチの初心者です(^^♪
4月からやってるというもの、壁に当たりすぎて実質1,2ヶ月分の学習しか出来ていない気がしますが(~_~;)
そんなことはさておき、今更ながらアウトプットもかねて自分と同じ未経験の方の力になれたらと思い記事を書かせていただきます。
どこか間違いがあったり、ご意見、アドバイスなどがありましたらコメントしていただけると幸いです。

前置きが長くなってしまいましたが本題へ…

Javaを使用してWebアプリケーションを作成し、実行の際に発生したエラーです。

#実行環境
– 【Spring Tool Suite 4】
Version: 4.4.2.RELEASE
– Apache-Tomcat Version: 9.0.27
– JRE Java8

実行環境を書く理由はそれぞれのソフトの互換性があるため、バージョンが違うだけでうまく実行できないという状況が発生します。
なので、「上記に記載しているソフト、バージョンだと動いたよ」という証拠にもな

元記事を表示

Android Java FragmentでCameraXライブラリ使ってみた

Google I/O 2019で紹介されたCameraXをJavaでFragment上で試してみたので簡単にご紹介。

##準備

公式の[チュートリアル](https://codelabs.developers.google.com/codelabs/camerax-getting-started/#0)をみながら進めていくと楽チンなのでこちらを見ながら進めていきます。

プロジェクト作成や、dependenciesの追加などはチュートリアル通りに進めるだけなので本記事では割愛。

##プレビュー用のビューを追加
Fragmentで表示するlayout.xmlにTextureViewを追加します。


元記事を表示

LaravelとSpringBootでDIコンテナを利用してみる

# はじめに
これは[ユアマイスターAdventCalendar2019の13日目](https://qiita.com/advent-calendar/2019/yourmystar)の記事です。
(社会人になってから学んだことをアウトプットする記事になります。)

## 今回の経緯
社会人になってからDI(依存性の注入)という概念を知りました。
WEBサービスの開発を行う際に、フレームワークを利用する場面は多々ありましたが、主に利用していた`Cake PHP`ではDIという概念は出ていなかったと記憶しています。
(記憶違いだったらすみません。)

DIは、インスタンスをnewで作成して利用するのではなく、DIコンテナやサービスコンテナ呼ばれるもの(SpringBootではDIコンテナ、Laravelではサービスコンテナと呼ばれます)を利用して、あらかじめ登録されたインスタンスを利用します。

今回は、業務で利用しているSpringBootでのDIコンテナの利用、最近独学で学んでいるLaravelでのサービスコンテナを利用してみるというテーマで記事を書いてみたいと思います。

##

元記事を表示

日付と時刻

個人的な勉強のためにまとめたものです

#日付と時刻

Java SE 8から日付や時刻を扱うための新しいAPIが追加された

##クラス

###LocalDate

**日付**を管理するクラス

###LocalTime

**タイムゾーンなし時刻**を管理するクラス
時間は、ナノ秒の精度まで表さすことができる

###DateTimeFormatter

指定した**日付パターン**に変更するクラス
「事前定義されている標準フォーマッター」、「ローカル固有のフォーマッター」、「カスタムパターンを使ったフォーマッター」の3種類がある(より複雑なフォーマッターは**DateTimeFormatterBuilder**によって提供)

###Duration

**時刻の差**を管理するクラス

###Period

**日付の差**を管理するクラス

###ZonedDateTime

**タイムゾーンあり時刻**を管理するクラス

##メソッド

###ofメソッド

日付けを指定してインスタンス生成するときに使うメソッド

###nowメソッド

現在の時刻でインスタン

元記事を表示

Alibaba Java Coding Guidelinesについて

##はじめに
初めてQuiitaにブログを書く機会が現れたので、ここに来ました!
現在、自分の技術武器は二つがあります、JavaとAlibaba Cloud。そしてこの二つを組み合わせ、何か書きたかったです。
色々がありますが、今回Alibaba Java Coding Guidelinesについてちょっと紹介したいと思います。
何で?自分のコードもっとキレイにしたいですから!

###Alibaba Java Coding Guidelinesとは?
長年にわたるAlibabaの技術チーム内部のベストプログラミングプラクティス。
様々なJavaプログラミングチームが同じルールに則ってプログラミングすることにより、コードクオリティーを高め、お互いのプログラムの再利用と理解を促進しているものです。

このGuidelineは、他のプログラマーも利用できるよう[GitHub](https://github.com/alibaba/p3c?spm=a2c65.11461447.0.0.5d19d1cdpnXlEo)で公開されており、現在2万弱の★がついています。また、アップデートされ続けてい

元記事を表示

【Java】OS依存な標準ライブラリを挙げてみる

# はじめに
この記事は[Java Advent Calendar 2019](https://qiita.com/advent-calendar/2019/java)の13日目の記事です。13日の金曜日です。不吉ですね。

不吉といえば、OS依存ってなんか不吉な感じがしませんか?
たとえばWindows環境で動作確認を行った時は問題なかったけど、Linux環境で動かしたらエラーになった…なんてことがあったりします。Write once, run anywhereなJavaですが、OSごとの違いを考慮しなくていいわけではありません。
そこでこの記事では、Javaの標準ライブラリでOS依存が隠れている例をいくつか紹介してみます。

## この記事における「OS依存」
一口にOS依存といっても色々なことが考えられますが、この記事ではプログラムの実行結果がOSによって変わってしまう場合のことを「OS依存」と表現することにします。
内部的にOSネイティブなAPIを呼ぶメソッドはたくさんありそうですが、どのOSでも同じ実行結果になるのであれば、この記事においてはOS依存ではないと考えます。

#

元記事を表示

Selenideを用いてブラウザ自動操作環境を5分で作成してみる

#はじめに
この記事は[エムスリーキャリア Advent Calendar 2019 13日目の記事です。](https://qiita.com/advent-calendar/2019/m3c)
この記事ではSelenium WebDriverのラッパーである[Selenide](https://selenide.org/index.html)を使ってブラウザ操作をサクッと試してみます。

#対象読者
– とりあえずブラウザの自動操作を試してみたい人
– JavaでUIテストを書いてみたい人
– ブラウザ操作を行うツールを作成したい人

#開発環境の準備
それではまず開発環境の準備から始めていきます。
IDEにはeclispeを使用します。
[https://mergedoc.osdn.jp/](https://mergedoc.osdn.jp/)よりJava Full Editionをダウンロードし、任意の場所に解凍します。
![eclipse.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

授業で習ったJavaの復習をつらつらと part4

# はじめに
今回扱うもの

– メソッド
– 継承
– インターフェース

前回の「コンストラクタ」同様、オブジェクト指向に関する場所なので分かりづらい。例を挙げながらつらつらと記述していく。part3までは読んでね。
今回の部分まで理解できると違う言語でもプログラミングしやすくなり、とても便利な考え方です。がんばりましょう。

# メソッド

ここではオブジェクト指向で超重要な部分、メソッドについてお話する。
メソッドとは、自分が作成したオブジェクトに対して「どんな挙動をするか」を記述する部分である。「ノートPC」というオブジェクトを作った場合、コンストラクタでは「誰の」や「色」、「ハード構成」のような物体そのものに対して記述していく。対して**メソッドは「起動する」「ネットワークにつなぐ」「ファイルを圧縮する」のような行動・状態遷移を定義**できる。

“`java/Car.java
public class Car
{
int number;
String owner;
int speed;

public Car()
{

元記事を表示

[Spring MVC] パス変数の受け渡し方について

Springでのパス変数の受け取り方、リダイレクト先への渡し方メモ
## パス変数を受け取る方法
“`java
// (1)
@GetMapping(“{name}”)
public String detail(@PathVariable String name) {
return “detail”;
}

// (2)
@GetMapping(“idol/{name}”)
public String idolDetail(@PathVariable(“name”) String idolName) {
return “idol/detail”;
}

// (3)
@GetMapping(“unit/{unitId}/idol/{idolId}”)
public String idolDetail(@PathVariable(“unitId”) Integer unitId, @PathVariable(“idolId”) Integer idolId) {
return “idol/detail”;
}
“`
パス内に含まれる値をメソッドの処理内で利用し

元記事を表示

javaとは

まだまだ根強い活躍の場面が多い、javaについて書こうと思います。

# javaとは
C言語の構文を主に引き継いだプログラミング言語です、

汎用的でOSに依存しないためサーバーサイドでも活躍し
androidやガラケーでもアプリを組むことが可能です。

# javaの開発
開発にはJDK(Java Development Kit)を使用します。
Javaのサイトからダウンロードすることができます。

リンク先: [JDK](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

# javaのメリット

* 汎用的でOSに依存しない
* オブジェクト指向である
* 処理速度が速い

など大きなメリットが特徴です。

## 汎用的でOSに依存しない
根本的にプラットフォームに依存しないので
OSに関係なく、Windows, Linuxなどで動作させることができる言語です。

## オブジェクト指向である
プログラムの管理を細かくできるので
チーム開発など効率が上がりま

元記事を表示

Java 13 の新機能紹介

# Java 13 で何が変わったか
Java 13 になってGCの改善等色々と行われました。
今回はプログラムを書くにあたってわかりやすく変わった以下の変更について紹介します。

– テキストブロック
– switch 式

## 新機能を試してみる
まずは以下のページにある Java 13 をインストールして試してみます。
https://adoptopenjdk.net/

jshell を使って試そうとしたところまだプレビュー版の機能ということで使用できませんでした。
そこで jshell のオプションに –enable-preview を付けて実行します。

“`java
jshell –enable-preview
“`

## テキストブロック
今までは複数行の文字列を定義する場合 “” で囲み + 演算子で文字列を結合してきました。

“`java
jshell> String html = “\n” +
…> ” \n” +
…> ”

元記事を表示

Windows: Java Maven Project in Eclipse

#Windows: Java Maven Project in Eclipse
##Tomcat 9
ダウンロードする
>https://tomcat.apache.org/download-90.cgi

NEXTをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546056/4c4e9820-51ea-2dab-b026-60968d4f5107.png)
I agreeをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546056/8fa63cd1-2685-f2c0-9d88-c98ecde1e078.png)

Service Startup を選ぶ(パソコンをオンにする時にTOMCAT自動に始まります。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/546056

元記事を表示

Java で Spresense の開発をしてみる(1)

# この記事について
2019/12/2 に、Spresense開発ボードでJavaをサポートする旨のプレスリリースが行われました。
→ [Spresense development board from Sony now also supports Java](https://developer.sony.com/ja/posts/spresense-development-board-from-sony-now-also-supports-java/)
ということで、実際に試してみます。

今回は、やってみたら意外と面倒で時間がかかった、開発環境の構築についてをまとめてみます。

# Spresense Java 開発環境について
Spresense の Java の開発には、 [MicroEJ](https://developer.microej.com/sony-spresense-getting-started-sdk.html) という組み込み向けのJava開発環境を使用します。

開発環境の構築手順は https://github.com/MicroEJ/Platform

元記事を表示

Tomcatとは

学習用資料

###サーバーとは何か?

一言で言うと、リクエストを受け取ってそれに対してレスポンスを返すもの。
例えば、一般的なwebサイトではURLというリクエストをサーバーに送ってhtmlをレスポンスでもらう。
プログラミングにおいて、サーバーを作ろうと思った時言語の中にサーバーを簡単にたてれるものがあるがJavaに関していうとそれは難しい。なので、あらかじめサーバーの機能が入ったものをインストールしてそれと連携してサーバーを作っていく。

###Tomcatとは何か?

Tomcatはサーバーの機能が入ったものでJava Servletと連携しやすくしたものである。
ということで、簡単なサーブレットを作ってみよう。
まずはイクリプスを開く。ここで右上の×ボタンの下がJava EEが青くなっていることに注意。

![java.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/514262/f4ab65fe-1c1f-a8fc-48af-f5876bc606c1.png)

ここで右クリック→New→

元記事を表示

QuantAnalyzerの画面を見てみよう!

便利そうだけど結構よくわかんないのもある。
使いこなすために、書きながらお勉強。
まだ書きかけ。

実際のQuantAnalyzerのAnalyze – Overviewの画面と、

C:\QuantAnalyzer4\extend\Snippets\com\strategyquant\extend\OverviewTab\SQDefault.java
の中身とをVSCodeで見比べて推測していきます。

# Javaの独自定義の関数とか変数とかさっくり推察
#####d2WithPlType(stats.getXXXXX(XXXXX), combination.getPLType())
表示形式(金額、pips、%)に合わせるためっぽい
#####d2WithPlType(stats.getXXXXX(XXXXX), SQConst.PL_IN_PCT)
表示形式を%に固定してるっぽい
#####d2(stats.getXXXXX(XXXXXXXXXX)
小数点以下第2位まで求めてるっぽい。
#####statsConst.XXXXX
これの中身を見れたらなぁ。どうやって算出された値

元記事を表示

ミャンマー語(ビルマ語)の文字コード問題で困ったら

#ミャンマー語の文字コードについて
ミャンマーは、歴史的な背景からインターネット技術の発展が世界から取り残された地域の1つ。
従来はZawgyi文字コードが主流でしたが、市場開放され国際化対応が進んでいく中、
UNICODEへ変わりつつあります。

日本の例では、EUCやSJISなどのWebがあった時代から、今ではUTF8に変わってきた歴史に似ています。
https://enjoy-yangon.com/ja/enyanblog/351-change-myanmar-font-zawgyi-to-unicode

#文字コード混在による文字化け対処の基本方針

現地人でなければ、文字自体が文字化けしているような文字なので、何が問題あるのかは我々エンジニア・プロラマーにすればわからないというのが本音。ただし、エンジニアなら、その問題解決に向き合う必要があります。

つまり、問題解決に必要な要件を決めて、ソフトウェアで解決する必要があります。

要件1 ZawgyiかUNICODEが文章で判定できる事
要件2 ZawgyiからUNICODEへ文字コード変換できる事

その2点が必須要件です

元記事を表示

例外切り替えメソッド

##ものによって例外を切り替えたい共通処理

なんかAPIとかの戻り値が不正の場合、APIによって違う例外を使いたいけど

だいたいの処理は似ているみたいな状況でこんなの使えそうだなっていう備忘録

“`ThrowExceptionTest.java
package reflection;

public class ThrowExceptionTest {

public static void main(String[] args) {
try {
throwException(“w”);
} catch (WwwwException e) {
System.out.println(e.getMessage());
} catch (ZzzzException e) {
System.out.println(e.getMessage());
}
}

/**
* フラグによって投げる例外を切り替える.
*
* @param flg
* @throws WwwwException
* @throws ZzzzExce

元記事を表示

28歳未経験からエンジニアになって早一年

お疲れ様です。
エンジニア歴があと半月で丸一年になります門脇と申します。
今回は28歳未経験&勉強嫌いの私が、ここまでどうやってしがみ付いて来られたのか
その航跡について書いていきたいと思います。

# はじめに
この記事は[うるる Advent Calendar 2019](https://adventar.org/calendars/4548) 12日目の記事です。

# 夜明け前
私は小さい頃から物を作るのが好きでした。
小学生の時の通信簿はいつも図工と道徳だけ4でした。
0から何かを作り、それが段々と形になっていくことに面白味を感じていました。

前職もものつくりに携わる仕事をしていたのですが、
友人からの誘いで今のエンジニアという職に就く事になりました。
勉強の苦手な私がエンジニアとしてやっていけるのかどうか最初は非常に不安でしたが、
手に職を付けたいという思いと何かを作る仕事がしたいという気持ちから挑戦してみることにしました。

# 書籍について
今の会社には入社時に3ヶ月間の研修があり、
そこでは主に
・Javaを使用したプログラミングの基礎
・DBの操作
・WEBアプリ

元記事を表示

Kotlinと今後のJavaはどっちがいい?

## はじめに
本記事は [Kotlin Advent Calendar 2019](https://qiita.com/advent-calendar/2019/kotlin) 12日目の記事です。

KotlinはJavaと比較してモダンと言われ続けてきていると思います。
しかしJavaのリリースサイクルが半年に1回となり、今までよりも良い言語になりつつあり、将来的な保守性を考えたときにJavaの方がいいのでは?という意見もあり、言語選定の時にどちらを選択すればいいのかと悩むことがあると思います。
そこで、最新のJavaの動向とKotlinを比較して、どちらがよりモダンかを比較したいというのが今回の内容です。

比較する対象はKotlinの最新バージョンとJavaの12以降の機能になります。
Javaについては、バージョン13が2019/9/18にリリースされましたが、今回は開発中のJDK14やそれ以降に入りそうな機能もいくつか比較していければと思います。
JDK11以前の機能については、他に良い記事が沢山あると思うのでそちらを参照くだ

コンソール上で遊べる重力付き四目並べ

#はじめに
今回はコンソール上で重力付き四目並べを遊んでみました!
こんな感じに動きます。
![connect.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547629/e2b6b1fc-9650-eeff-0b77-b28a2ccf4f47.gif)

お遊び程度で作ったので判定部分に漏れがあるかもしれませんが、今後はこれをベースにCPU対戦を追加など改良を加えていこうと思います。
一応重力付き四目並べについて
>
wiki
https://ja.wikipedia.org/wiki/%E5%9B%9B%E7%9B%AE%E4%B8%A6%E3%81%B9

#使用環境
・Windows 7
・Java 8
・Eclipse

#ソース紹介
今回のソースを紹介します。

“`Java:ConnectFour.java
package connect.main;

import java.util.Random;
import java.util.Scanner;

public class Co