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

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

ScalaからJavaCPP + Java経由でネイティブライブラリーを使う

# はじめに

未踏ターゲット2018年度ゲート式量子コンピュータにおける開発でC++で主に書かれた量子コンピューターのシミュレーターである[Qulacs](https://github.com/qulacs/qulacs)を利用している。QulacsはPythonバインディングがすでに用意されているが、やはりより慣れたプログラム言語であるScalaで開発をしたいと常に思っていた。そこで[JavaCPP](https://github.com/bytedeco/javacpp)を利用してQulacsのようなネイティブライブラリーをJava経由でScalaから呼び出すために色々と調査したところ、最終的にはsbtプラグインを作ることができた。

– https://github.com/y-yu/sbt-javacpp4s

実はJavaCPPのGitHubオーガナイゼーションにもsbtプラグインがあるが、調べたところこれはJavaCPPですでに利用できるOpenCVなどをScalaから使いやすくするためのものであり、新規にネイティブライブラリーをScalaから利用できるようにするものでは

元記事を表示

What are the updated features of java 13

Java 11 new features must have caught everyone’s attention, especially considering the fact that it is the second long-term support (LTS) release. Similarly, thoughts about Java 13 new features might be developing with some sort of confusion regarding long-term support. The Java 13 release date on 17th September 2019 shows that the public updates for Java 13 would end in March 2020. However, the primary focus of our discussion is on the new features in Java 13.

In addition, we shall also try to

元記事を表示

Spring Retry トラブルシューティング

## 概要
– Spring Retry で発生する様々なトラブルについての対応策を列挙する
– 今回の環境: Java 8 + Spring Boot 2.2.0 + Spring Retry 1.2.4

## コンパイルできない

以下のようなエラーメッセージが出力される。

“`
Error:(3, 44) java: パッケージorg.springframework.retry.annotationは存在しません
Error:(11, 4) java: シンボルを見つけられません
シンボル: クラス Retryable
“`

Spring Retry が導入されていないと思われるため、Spring Retry を導入すれば良い。

Apache Maven の場合は pom.xml の dependencies 要素に以下を追加する。

“`xml


元記事を表示

Spring Bootで組み込みTomcatのアクセスログを標準出力に出力する

## 概要

Spring Bootの組み込みTomcatでは、アクセスログを自動でファイルに出力することができます。
本記事ではこれを標準出力に出力させる方法を紹介します。

## 環境

– Java8
– Gradle 5.6.2
– Spring Boot 2.2.1
– logback-access 1.2.3
– logback-access-spring-boot-starter 2.7.1

## まずはアクセスログを出力する

てきとーなGETとPOSTを受けるRestControllerを書きます。

“`java
@RequestMapping(“hello”)
@RestController
public class HelloController {

@GetMapping(“”)
public String hello() {
return “Hello, world!”;
}

@PostMapping(“”)
public String message(@RequestBody String m

元記事を表示

プログラムに書くコメント各種

“`java:java
// 一行だけがコメント
/* この間の文字は
すべてコメント*/
“`

“`html:html

// コメントにはならない
/* コメントにはならない*/
“`
“`css:CSS
/* この間の文字がコメント */
“`

元記事を表示

Apache Tomcat 9 ドキュメントまとめ

## Apache Tomcat 9

Apache Tomcat 9 は Servlet 4.0 と JavaServer Pages 2.3 を実装している。

[Apache Tomcat 9 \- Documentation Index](http://tomcat.apache.org/tomcat-9.0-doc/)

> Apache Tomcat version 9.0 implements the Servlet 4.0 and JavaServer Pages 2.3 specifications from the Java Community Process, and includes many additional features that make it a useful platform for developing and deploying web applications and web services.

## Java Servlet 4.0
– [JSR-000369 Java Servlet 4.0 Specification \(Fina

元記事を表示

Visual Studio CodeのJavaで–enable-previewオプションを付ける

随分前ですが、Visual Studio Code(以降VSCode)の[Java Extension Pack](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack)がJDK 13に対応しました。

元記事を表示

Javaでgzファイルを解凍するサンプル

サーバ上のgzの中身を確認する必要があるにも関わらず、手元のへっぽこWindows7 PCには7zipのようなgzに対応したソフトウェアがインストールされていない。サーバ上で解凍すると、元ファイルが巨大すぎて、手元のPCに持ってこれない恐れがある。手元で使えそうなものはJavaとEclipseだけ–ということで、Javaでgzファイルを解凍するという機会がありましたので、そのサンプルコードをQiitaに供養しておきたいと思います。

“`java
import java.io.IOException;
import java.io.OutputStream;
import java.io.UncheckedIOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.zip.GZIPInputStream;

public class GZIPUtils {
public static void unzip(Path src, Path dst) {

元記事を表示

コンストラクタ-java

**コンストラクタ**とは、newを使ってインスタンスを生成した後に**自動で呼び出される特別なメソッド**です。
コンストラクタは特別なメソッドのため、定義方法が決まっています。
**①コンストラクタ名はクラス名と同じにする**
**②戻り値を書いてはいけない(voidも書かない)**
という2つの決まりを守りましょう。
この2つさえ守れば、コンストラクタの完成です。

“`java:Sample
class Sample{
Sample(){
//インスタンス生成時に行いたい処理内容
}
}
“`

元記事を表示

Jarファイルの中身を差し替える

忘れないように覚書。
プロジェクトで必要になったので。

“`
jar -uf <差し替えるファイル・ディレクトリ名>
“`

簡単でした

元記事を表示

FlutterからJava/Objective-Cのネイティブコードを呼んでみた

# FlutterからネイティブAPIを呼びたい
[MethodChannel](https://api.flutter.dev/flutter/services/MethodChannel-class.html)を使って、FlutterからJava(Android)とObjective-C(iOS)のネイティブコード呼び出しを試してみました。

[Writing custom platform-specific code](https://flutter.dev/docs/development/platform-integration/platform-channels)に記載のサンプルコードを動かしてみたので、実際の流れをメモしておきます。

Kotlin/Swift版はこちら
[FlutterからKotlin/Swiftのネイティブコードを呼んでみた – Qiita](https://qiita.com/unsoluble_sugar/items/ae42b5faf52a491f6470)

サンプルソースはこちら
https://github.com/unsolublesu

元記事を表示

Javaでコードを書くときに意識していること

# 前置き
普段はJavaを書いているので、Javaを想定して書きます。
DDDっぽい趣向が入ってしまうのをなんとか避けつつ…(願望)

## 略称を使わず、総称を使う
例に関して、`id` ですら `identifier` と書いてしまう筆者なので少し過剰気味かもしれませんが、短く意味が伝わらない名前より、長くて意味が伝わる名前の方が良いと思います。理想は短く伝わること(できるなら1語)です、より理想に近い名前づけを意識すると良いかと思います。(`i` や `id` などデファクトスタンダードな名前に関しては例外)

“`.java
class Identifier {
String value;

Identifier(String value) {
this.value = value;
}

String value() {
return value;
}
}
“`

## 出来るだけ独自型を使用する
`String` や `int` など言語にすでにある型は独自アプリケーションの概念を表現するには向いていないように感じます。よく変数

元記事を表示

Spring AOPの技術によるシステムログ出力を行う

### Spring AOPとは
 Spring Frameworkにおいて、DI(Dependency Injection、依存性注入)と並び重要な根幹技術となっているのが「AOP」というものです。
 AOPは、「Aspect Oriented Programming(アスペクト指向プログラミング)」の略です。アスペクトというのは、一般に「横断的関心事」と呼ばれるものです。

### 環境
– spring
– java8
– Log4j

### Spring AOPのアノテーション用語
1.@Aspect
  @Aspectをクラスにつけることで、そのクラスはAspectとして認識されます。
2.@Pointcut
  横断的な処理を挿入する場所(メソッド)を指定する。
3.@Before
  対象のメソッドの処理前に実行されるAdviceです。
4.@After
  対象のメソッドの処理結果に関わらず、必ず実行されるAdviceです。
5.@AfterReturning
  対象のメソッドの処理が正しく終了した場合にのみ実行されるAdviceです。
6.@AfterThro

元記事を表示

private,protected,privateのアクセス権-java

privateの代わりにprotectedを用いると、
クラス内とサブクラスからのみアクセスを許すフィールドを作ることができます。

####「public」「protected」「private」「デフォルト(何もつけない)」アクセス権について
**・public**: どこからでもアクセス可能
**・protected**: そのクラスと子クラス内からのみアクセス可能
**・private**: そのクラス内からのみアクセス可能(クラス外からのアクセスにはゲッター&セッターが必要)
**・デフォルト修飾子**:ある要素に何も指定しなかった場合、その要素のアクセスはデフォルトとみなされ、同じパッケージ内のクラスから利用可能になります。

| アクセス権| public| protected | private |デフォルト|
|:————|:———-:|:——:|:—:|:—–:|
| クラス内   | ○ | ○ |○|○
| サブクラス内 | ○ | ○

元記事を表示

【合格体験記】新人がJavaBrozne1週間チャレンジ

#はじめに
**Java Bronze試験に受かりました。**

今回は
「とりあえずSilverの前準備というか肩慣らし(Silverはまだハードルが高いかなと)」
「[この前Rubyの資格は取った](https://qiita.com/Kakese_Chan/items/42d973ffffda05c2537d)ので、Javaの方にもなにか箔をつけておきたい」
「資格手当と昇給」
みたいな理由で受験しました。

また出題範囲的にも**オブジェクト指向(コンストラクタ・継承・インターフェースなど)の問題が目立ち**、まだ自分の中で少し漠然としているオブジェクト指向のトレーニングとしてもいいかなと思いました。

この資格が実用的かどうかで言うと若干微妙かもしれません、出題範囲的に日付型どころかtry-catchすら見かけないので「これでアプリケーションが作れるぞ!」っていう資格ではないかなと思いました。

Javaの実用的な資格というよりは**オブジェクト指向の検定**みたいなニュアンスが強いなっていう感想です。

# 1週間で受験

最初から1週間で受けるつもりはなく、大分結果論的な

元記事を表示

Spring Boot で 404 Not Found などのエラーが発生した際の表示をカスタマイズする

## 概要
– Web アプリケーション全体で発生する 404 Not Found などのエラーについて、Spring Boot での表示内容をカスタマイズする

## 今回の環境
– Spring Boot 2.2.0
– Spring Boot Thymeleaf Starter 2.2.0
– Thymeleaf 3.0.11

## デフォルトでは Whitelabel Error Page や JSON が返される

Web ブラウザでアクセスした際にエラーが発生すると、デフォルトでは以下のような Whitelabel Error Page というのが表示されるようになっている。

“`
Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Wed Nov 06 18:38:41 JST 2019
There was an unexpected error (type=Internal Server

元記事を表示

Here Few Upcoming Trends with Angular 8 for 2020

Being one of the most popular software development instruments today, Angular has received a lot of recommendations and recognition from the development community all over the world.

With the rise in popularity of using Angular for building user interfaces, the development community has grown. Heading towards 2020, Angular has a lot for the industries and thus is giving us the opportunity to explore its functionalities, features, and benefits for web and mobile app development.
**1.Enterprise

元記事を表示

Springやってみた。

##[改訂新版]Spring入門 ――環境構築
有名な本ですが、下記の手順がないとやりにくいので
共有します。
[改訂新版]Spring入門
――Javaフレームワーク・より良い設計とアーキテクチャ
http://gihyo.jp/book/2016/978-4-7741-8217-9

手順

・上記記載のgithubからサンプル取得
今回の取得プロジェクト:mvc
・下の二つのアドレスを参考に環境構築
https://qiita.com/yu_eguchi/items/9a56e6c6281c1f0435ff

STSにプロジェクトをインポートする


・アドレスをたどって
表示成功
http://localhost:8080/mvc/customer

元記事を表示

Java Word文書をマージする

この文は以下の2つの方法を使用して、Javaアプリケーションでword文書をマージします。

方法1: 結合された文書は新しいページから開始されます
方法2:前文を受けるWord文書をマージする

DockmentクラスのinsertTextFroomFile()を使用して、異なるドキュメントを同じドキュメントに統合できます。この方法でドキュメントを結合すると、結合されたドキュメントの内容がデフォルトで新しいページから表示されます。

“`java

import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class MergeWordDocument {
public static void main(String[] args){

//最初の文書を取得するパス
String filePath1 = “merge1.docx”;

// 2番目の文書のパスを取得します
String filePath2 = “merge2

元記事を表示

Java 単体テスト 指定曜日判定 ArDate,Date,Calendar,longが指定された曜日であるかを判定する.

目次 ⇒ [Java単体テストライブラリ-Artery-サンプル](https://qiita.com/artery/items/77666d51b538d35fa2a5)

“`java
package jp.avaj.lib.test;

import java.util.Calendar;

import jp.avaj.lib.algo.ArDateUtil;
import jp.avaj.lib.algo.ArYoubi;

/**
Java 単体テスト 指定曜日判定 ArDate,Date,Calendar,longが指定された曜日であるかを判定する.

・このサンプルではCalendarが指定曜日であるかを判定する.
*/
public class Q05_03 {
public static void main(String[] args) {
// テストケースを開始する – 集計が不要の場合は不要.
ArTest.startTestCase(“Q05_03”);

// 確認したい曜日 – 火曜日
ArYoubi youb

元記事を表示

OTHERカテゴリの最新記事