JAVA関連のことを調べてみた2022年01月22日

JAVA関連のことを調べてみた2022年01月22日

Java – How to Configure Log4j2 Properties File?

# Console Logging
“`
log4j2.properties
# Extra logging related to initialization of Log4j
# Set to debug or trace if log4j initialization is failing
status = warn
# Name of the configuration
name = ConsoleLogConfig

# Console appender configuration
appender.console.type = Console
appender.console.name = consoleLogger
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n

# Root logger level
rootLogger.level = debug
# Root logger referring to console appender
rootLo

元記事を表示

Docker in Javaのメモリ消費がコンテナの制限を超えていた話

# 発端
amazoncorretto:11ベースのコンテナでJava(Kotlin)のアプリケーションを稼働させました。
ホストサーバーのメモリは4G(実際に使用できるのは3.9G程度)
コンテナにはcpus: 2、mem_limit: 2.5gでリソースの制限をかけていました。

# 違和感
アプリケーションに負荷がかかるとメモリ使用率が2.5Gどころか3G超に、そしてサーバーが危篤(ピンチ)
危機が過ぎ去った後、開発環境で色々と検証

JDK11なのでUseContainerSupportがデフォルトオンになっているはずと思いこのようなソースを用意してコンテナ内で実行

“`A.java
public class A {
public static void main(String[] args) {
System.out.println(“Version: ” + System.getProperty(“java.version”));
System.out.println(“availableProcessors: ” + Runtime.getRunt

元記事を表示

Webで使えるJavaのUIフレームワークのVaadinをさわってみた(その2)

## これはつづきものです

https://qiita.com/haruki_ueno/items/afc10b7948411ace3d0d

## Starting a Project
ここではVaadinプロジェクトの始め方をみます。
始め方はここに記載があります。

https://vaadin.com/docs/latest/flow/guide/start

> The recommended way to start a new Vaadin project is to use Vaadin Start. It allows you to configure and download a customized starting point for your application.

という記述があるように、「Vaadin Start」というサイトからプロジェクトを作ることを公式が推奨しています。必須ではなく推奨です。

> The applications created using Vaadin Start are based on Spring Boot. Va

元記事を表示

AtCoder Beginner Contest 017をやった(Java)

AtCoder Beginner Contest 017をやった。
C問題解けない。。

##[A](https://atcoder.jp/contests/abc017/tasks/abc017_1)
一応Double型で宣言して実装

“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
double ans = 0;
for(int i = 0; i < 3; i++){ ans += scan.nextDouble() * (scan.nextDouble() / 10); } System.out.println((int) ans); } } ``` ##[B](https://atcoder.jp/contests/a

元記事を表示

Spring Native 0.11(GraalVM)を使ってSpring BootのアプリをNaitive Image化する方法

# サマリー

Spring Native 0.11(GraalVM)を使ってSpring BootのアプリをNaitive Image化しました。

Q:Naitive Image化とは?
A:今回の検証だと、javaアプリをexe形式にすること(windows環境)

Q:Naitive Image化の何がいいの?
A:アプリ起動が速くなる

Q:アプリ起動が速くなると何がいいの?
A:サーバーレスアーキテクチャーのようにコンテナが頻繁に起動・削除を繰り返す環境で有用

Q:サーバーレスアーキテクチャーの具体例は?
A:AWS Lambda, Azure Functions, GoogleのCloud Functions, Oracle Cloud Functions等
※上記クラウドでアプリを実行するには、dockerイメージの作成が必要になりそう。別の機会に検証を行う。

今回のアプリの測定結果は以下の通り
※いわゆるパソコン(windows10、4コア8スレッド、メモリ16G)で実施した結果です

|形式 |起動時間|
|—|—|
|Naitive Image

元記事を表示

JavaとJMeterをインストールする

# 概要

Java(JMeterの動作に必要)およびJMeterのインストール方法を説明します。

– Macの場合およびWindowsの場合を扱います。
– jenvを使う場合の説明は、ここでは割愛します。

# Javaをインストール

Oracle Javaの有償化を巡って、Javaの開発環境(JDK)には様々な種類がありややこしくなっています。

– バージョン8まで
– Oracle JDKを無償で利用できました。
– バージョン9以降
– Oracle JDKが有償化されました。
– 代替となるOpen JDKが様々な機関から無償で提供されるようになりました。
– バージョン17以降
– Oracle JDKが再び無償で利用できるようになりました。([こちら](https://www.publickey1.jp/blog/21/oracle_jdkjava_17.html)を参照)

JMeterを利用する際は、利用するJDKのバージョンと種類を選定した上で、下記のいずれかの方法でインストールしてください。

> JDKのバージョンおよび種

元記事を表示

【OOP】05_ポリモーフィズム

こんにちは、コイキングです。

本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、ポリモーフィズムについて、説明したいと思います。

******
# 1. ポリモーフィズムとは?
**一つの機能が状況によって、違う結果を出す事で、**
Javaでは’親クラス’又は’インターフェース’を定義し、親を継承した子クラスで親の機能を再定義して**親クラスの参照変数から子クラスのインスタンスを参照し、**親クラスの参照変数から子クラスごとに再定義されたメソッドを呼び出すこととするのを言います。

## 1) ポリモーフィズムの長所
– 多種多様なインスタンスを一つの親の参照変数にて管理できるため、**コードの量が減り、コードの維持保守がより楽になります。**
– 一つの親を共有する子クラスを増やし機能を再定義することで新機能の追加が可能がため、**拡張に有利で、結合度が強くならないようにコードの実装ができます。**

## 2) ポリモーフィズムの短所
– ちゃんと活用するのは難しいため、プログラマーの能力によりコー

元記事を表示

Java Silver SE11 5章

# Java Silver SE11 5章
[黒本](https://www.amazon.co.jp/gp/product/4295007625/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)をもとに学んだことをアウトプットしていきます。
主に問題を解いていて、間違えた箇所もしくは知らなかった内容になります。

## 配列
Javaの配列は、配列クラスから作成されたインスタンスであり、複数の値を取り扱う。
配列が扱う値のことを要素と呼ぶ。
以下のような特徴がある。

* 同じ型か互換性のある型を扱える
* インスタンス生成時に要素数を決める
* 後から変更できない

### 宣言とインスタンス生成
宣言時には以下のルールがある。

* 記述する[]は、変数名の前後に入れることができる
* 宣言時に要素数の指定はできない
* 配列型の変数には、あくまで配列インスタンスへの参照のみが代入されているので要素は関係ない

* 2次元配列を生成する場合の流れ(int[][]array = new int[2][2];)
1. 1次

元記事を表示

Java基礎(アウトプット用)

### メソッドの定義,呼び出し

“`java
class Main{
public static void main(String[]args){
hello();
}
public static void hello(){
System.out.println(“Hello World”);
}
}
“`

###引数をメソッドに渡す

“`java
class Main{
public static void main(String[]args){
hello(“Bob”);
}
public static void hello(String name){

System.out.println(name + “さんこんにちは”);
}
}
“`

###複数の引数を渡す
“`java
class Main{
public static void main(String[]args){
printPrice(“ピザ”,3000);
printPrice(“コーラ”,150);

元記事を表示

プログラミング言語を簡単にまとめる

##Java
JavaとはC言語ベースに開発された汎用性の高いプログラミング言語。求人需要が多い
WEBサービスから業務システム、組み込み、など多岐に渡り開発現場で採用されている。
フレームワークはspring Framework

##Ruby
Rubyとはオブジェクト指向のプログラミング言語。コードはシンプルに書きやすく読みやすい。
WEBサービスやWEBアプリケーションができる。
フレームワークのRuby on Rails。クックパッドや食べログに使用されている

##PHP
PHPとは動的なWEBページを生成することができるサーバーサイドのスクリプト語。HTMLは静的WEBページ。
他のプログラミング言語と比べると文法が比較的容易なので取得しやすい。
フレームワークはLaravel

## C#
マイクロソフト社が開発したオブジェクト指向のプログラミング言語。Javaと似ている。
GUIアプリケーション、WEBアプリケーション、ゲーム開発ができる
フレームワークはASP.NET

元記事を表示

Kotlinデビューしたくて環境構築してみた

# はじめに
Kotlinを触ってみたくなったので、環境構築をしてみました。
実際に動かすのは、今後になる予定です。

# 環境構築(Windows)
## JDKのインストールをする

1.公式サイトからJDKをダウンロードする
https://www.oracle.com/java/technologies/downloads/#jdk17-windows

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397779/e268999c-43d7-70a0-086f-3aab9ca40368.png)

2.インストールする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397779/64ba3798-24b6-6f5a-48cb-e2a390fd40db.png)

3.環境変数の設定をする

「スタートメニュー」>「設定」>「システム」>「詳細情報」>「システムの詳細設定」>「環

元記事を表示

必要な .class ファイルから間接的に参照されています

エラー解消に時間がかかったのでメモ。
ビルドパスのエラーの可能性があるのはわかっていたのですが…。

今後はjavaのビルド・パスを見て、
JREシステム・ライブラリがアンバインドとなっていないかを真っ先に確認すること:zap:

「アンバインド済み」という言葉があった場合は、
一旦除去して同じライブラリ(or Jar)を入れなおすと治ります。

元記事を表示

Log4Shellについて知っておいた方がよいこと

本記事は2022年1月4日に公開した英語ブログ[Log4Shell webinar: What you need to know](https://snyk.io/blog/log4shell-webinar-what-you-need-to-know/)を日本語化した内容です。

[![logo-solid-background.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/14d05b40-70b7-5276-27e9-2ecfe395db03.png)](https://snyk.io/jp)

多くのJavaアプリケーションに影響を与える[Log4Shellの脆弱性](https://snyk.io/log4j-vulnerability-resources/)については、すでに耳にしたり、対処したりしたことがあるのではないでしょうか。この重要なゼロデイ脆弱性についての最新情報を提供するため、弊社では最近オンラインセミナーを開催しました。

「Log4Shellについて知っておく

元記事を表示

Javaを通してPDFをPDF / Aに変換する方法

##背景
PDF形式をPDF / A形式に変換することにより、ドキュメントのレイアウト、フォーマット、フォント、サイズなどが変更されないように保護し、ドキュメントの読み取りとアクセスを保証しながら、ドキュメントのセキュリティ保護の目的を達成できます。この記事では、Javaバックエンドプログラムコードを使用してPDFをPDF / A1A、2A、3A、1B、2B、および3B標準に変換する方法を示します。以下は、その方法と手順です。

jarパッケージのインポート
Spire.Pdf.jarはこのプログラムにインポートされます。**[ダウンロード](https://www.e-iceblue.com/Download/pdf-for-java.html)**とインポートを実装するために、Mavenプログラムでpom.xmlの次のコンテンツを構成できます。


com.e-iceblue
e-iceblue
https://repo.

元記事を表示

Javaでデータベースに接続する

#はじめに
この記事は独習JSP&サーブレット第3版に基づいて、データベースを勉強していた際に躓いた点をまとめた記事です。最新版のJDBCやデータベースを使用している人は、同じようなエラーで躓いていると思うので参考になれば嬉しいです。

## 環境
– Tomcat 10.0
– MySQL 8.0
– MySQLドライバ(JDBC):mysql-connector-java-8.0.27

## jspからデーターベースに接続する

以下のようにconnect.jspファイルからデータベースに接続するとする。
データソースの設定はcontext.xmlで行う。

“`jsp:connect.jsp
<%@ page contentType="text/html;charset=UTF-8" import="java.sql.*, javax.naming.*, javax.sql.*" %>




データベースへの接続

<

元記事を表示

EclipseでPayaraTools導入エラー

#環境
* mac OS Monterey
* Eclipse IDE for Enterprise Java and Web Developers – macOS x86_64 (Eclipse IDE 2021-12 R Packages)

#原因
__Details__

“`
Cannot complete the install because one or more required items could not be found.
Software being installed: Payara Tools 1.4.0.202110041326 (org.eclipse.payara.tools.feature.group 1.4.0.202110041326)
Missing requirement: Payara Tools1.4.0.202110041326(org.eclipse.payara.tools.feature.group 1.4.0.202110041326) requires ‘org.eclipse.equinox.p2.iu; org.ec

元記事を表示

Java開発者のためのセキュアコーディングのコツ10個

本記事は2019年9月16日に公開した弊社英語ブログ[10 Java security best practices](https://snyk.io/blog/10-java-security-best-practices/)を日本語化した内容です。

[![logo-solid-background.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/7e96b3c4-cdd6-82db-5ce2-6cf02b879715.png)](https://snyk.io/jp)

このチートシートでは、オープンソースのメンテナーと開発者の両方に向けた、Java言語におけるセキュアコーディングのコツ10個を取り上げます。このチートシートは、SnykのデベロッパーアドボケートのBrian Vermeerと、Java チャンピオンであり[Manicode](https://manicode.com/) Securityの創設者であるJim Manicoとのコラボレーションによって作成されたものです。

元記事を表示

AtCoder Beginner Contest 016をやった(Java)

AtCoder Beginner Contest 016をやった。
[C](https://atcoder.jp/contests/abc016/tasks/abc016_3)問題の解き方が知りたいです。
図に書いて大まかにどのようなこと言っているのかは理解できますが、実装的に同実装すればタイムアウト起きないのか知りたく。

##[A](https://atcoder.jp/contests/abc016/tasks/abc016_1)
問題文に与えられたとおりに実装すれば答えが出ます。

“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
System.out.println(scan.nextInt() % scan.nextInt() == 0 ? “YES” : “NO”);
}
}
“`

元記事を表示

Javaを使用してPDFでテキストの回転と傾きを設定する

##背景
この記事では、Javaプログラムを使用してPDFドキュメントのテキストの回転と傾きを設定する方法を紹介します。テキストの傾きを設定するときは、メソッドTransformText(page);を定義し、page.getCanvas().skewTransform(float angleX、float angleY);を設定して、テキストの傾きを実現します。テキストの回転を設定するときは、メソッドRotateText(page)を定義します。 ;そしてpage.getCanvas()。rotateTransform(float angle);を設定して、テキストの回転を実現します。詳細なコードについて以下の内容をご参照ください。

注:PDFクラスライブラリツール**[Spire.PDF for Java](https://www.e-iceblue.com/Download/pdf-for-java.html)**を使用する必要があります。jarパッケージをダウンロードするか、libフォルダー内のjarファイルを解凍してjavaプログラムにインポートするか、mavenリポジトリ

元記事を表示

【OOP】04_継承

こんにちは、コイキングです。

本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、
継承について、説明したいと思います。

******

# 1. 継承とは?
**親クラスのメンバー変数とメソッド**を子クラスから**継承して使えること**を言います。

※ extendsキーワードを用いて継承する親クラスを定義し、継承かんけいを設定する事ができます。

public class 子クラス extends 親クラス {

}

※ 例示コード

“`java:Animal.java
public class Animal {
protected String name;
protected int age;

public Animal() {}

public Animal(String name, int age) {
this.name = name;
this.age = age;
}

public void printName() {
System.out.prin

元記事を表示

OTHERカテゴリの最新記事