JAVA関連のことを調べてみた2023年10月05日

JAVA関連のことを調べてみた2023年10月05日
目次

Javaとは?初心者向けに解説

# Javaとは?初心者向けに解説

こんにちは!今回はプログラミング言語の一つである「Java」について、初心者向けに解説していきます。

## 1. Javaの歴史

Javaは、1995年にSun Microsystems (現在はOracle Corporationの一部) によって公開されました。当初は家電製品の制御用のプログラム言語として開発されましたが、その後、ウェブアプリケーションやエンタープライズシステムの開発にも広く利用されるようになりました。

## 2. Javaの特徴

### 2.1. プラットフォーム独立

「一度書けば、どこでも動く」という思想の下、Javaは開発されました。Javaで書かれたプログラムは、異なるハードウェアやOS上で動作するJVM (Java Virtual Machine) 上で実行されるため、プラットフォームに依存することなく動作します。

### 2.2. オブジェクト指向

Javaは完全なオブジェクト指向プログラミング言語です。これにより、再利用性、拡張性、保守性が向上します。

### 2.3. 豊富なライブラリ

Java

元記事を表示

コマンドラインでTestNGを動かす[Windows 11]

# 動機
– mavenやant、EclipseやIntelij IDEAがない環境でもTestNGを使いたい。

# 環境
– OS : Windows 11 Home
– JDK
“`
>java -version
openjdk version “1.8.0_382”
OpenJDK Runtime Environment (Temurin)(build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (Temurin)(build 25.382-b05, mixed mode)
“`

# 手法
## 1. ライブラリのダウンロード
[mvnrepository](https://mvnrepository.com)からダウンロードする。
必要なのは以下の2つ。

– TestNG 6.11 – [リンク](https://mvnrepository.com/artifact/org.testng/testng/6.11)
– JCommander 1.72 – [リンク](https://mvnrepository.com/artifact

元記事を表示

【Java・学習ログ12】Objectクラス/静的メンバについて

教本に沿ってやってみたシリーズ、『第14章』。
≪使用教材≫スッキリわかるJava入門 第3版 スッキリわかるシリーズ

## ■java.lang.Objectの継承

javaでは親なしのクラスを定義できない。定義する際に指定がなければ、「java.lang.Object」が親クラスとして継承される。objectクラスには **eqials()、toString()** のメソッドが定義されており、どのメソッドでも呼び出すことができる。

指定のないクラスは全てextends.Objectを持っているとされ、多態性の法則によってどんなインスタンスでもobject型に格納でできる。※基本データ型(int,longなど)以外

“`java
Object 01 = new Empty();
Object 02 = new Hero();
Object 03= “おはようございます。”
“`

#### Objectクラスに定義されたメソッドを呼び出す
* toString()メソッド
オブジェクト(インスタンス)の中身を文

元記事を表示

Javaで「指定範囲の部分文字列を取得する」の動作を確認してみた

# 概要

Javaで「指定範囲の部分文字列を取得する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/stringbuilder/index8.html

# 実装

以下のファイルを作成しました。
“`JSample8_1.java
class JSample8_1{
public static void main(String[] args){
StringBuilder sb = new StringBuilder();

sb.append(“ABCDEFGHI”);
System.out.println(sb.toString());
System.out.println(sb.substring(3, 6));
System.out.println(sb.substring(3));
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample8_1.java
$ java JSample8_1
ABCDEFGHI
D

元記事を表示

Spring Boot 3.x への移行で、セッション周りではまったこと

# Spring Boot 3.x への移行で、セッション周りではまったこと

たいした話ではないのでのすが、Spring Boot 2.x -> 3.x での移行で、セッション周りではまったことの備忘録です。

## Spring Boot 3.x での変更点

以下にマイグレガイドがあります。

[Spring Boot 3.0 Migration Guide · spring-projects/spring-boot Wiki](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#spring-session-store-type)

それによると、`spring.session.store-type` による明示的な構成はサポートされなくなりました。複数のセッションストアの実装がクラスパス上にある場合は、固定順で使用する実装が選択されるようです。

優先順位は、[Web](https://docs.spring.io/spring-boot/docs/3.0.x/

元記事を表示

必要なポート 8080 はすでに使用中です。解決方法

eclipse Tomcat再起動

必要なポート 8080 はすでに使用中です。サーバーはすでに別のプロセスで稼働中であるか、システム・プロセスがそのポートを使用中である可能性があります。このサーバーを起動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。

上記のエラーメッセージが表示され実行されない。
文章の通り8080 はすでに使用中とのこと。
自社の研修時に何回もこのメッセージが表示されていたことを思い出す。
出るたびにポート番号変更してたっけ、、

ChatGPT様にご相談

## 1. ポートの使用状況確認:

“`python
lsof -i :8080
“`
このコマンドは、8080 ポートを使用しているプロセスの情報を表示します。もし何も表示されない場合、そのポートは使用されていない可能性があります。

## 2. プロセスの強制終了:
ポートが他のプロセスによって使用されている場合、そのプロセスを終了させることで解放できます。以下は、プロセスを終了させるコマンドの例です。
“`python
kill -9
“`

元記事を表示

JTReg実行備忘録[Ubuntu 22.04]

# おねがい
この記事を参考にして実行に失敗した方は後学のためにコメントをいただけますと幸いです。
質問にもお答えできる限りお答えしますので是非コメントを残してください。

# 環境
OS : Ubuntu 22.04.3 LTS

前回の[JTRegビルド](https://qiita.com/tabatad/items/a05f3a6fb1bab327e9c9)の続きになります。

# 手順

## 1. Gtest資材ダウンロード
“`
$ cd ~/work
$ git clone -b release-1.8.1 https://github.com/google/googletest
“`

## 2. JDKのリビルド
“`
$ cd ~/work/jdk17
$ bash configure –with-jtreg=$JT_HOME –with-gtest=/home/tabatad/work/googletest
$ make clean
$ make images
“`

## 3. テスト実行
テストの起動に失敗した。
“`
$ make run-t

元記事を表示

SDKMANを使って Java17をインストール

普段Javaを使ったりしないが、なんだかんだ3ヶ月ぐらいごとに 必要としていつもいつも思った以上に時間がかかっているため、今回メモを残すことにしました。

まず、Javaを直接システムに使うと後で管理色々と面倒なので Package Managerにお任せしたい。

そのためSDKMANを利用!

## 1. SDKMANをインストール

https://sdkman.io/usage

最初SDKMANがインストールもしていないので [公式ガイドの通りインストール](https://sdkman.io/install)する。

“`zsh
# インストール
curl -s “https://get.sdkman.io” | bash
# PATHなどを設定する
source “/Users/ignacio/.sdkman/bin/sdkman-init.sh”
# 確認
sdk version
“`

注意: もし curl 56 recv failure とか出たら 別のネットワークに切り替えた方がいい。これはSDKMANのせいではなく、おそらくそのネットワークの設定が何か関わ

元記事を表示

JTRegビルド備忘録[Ubuntu 22.04]

# おねがい
この記事を参考にしてビルドに失敗した方は後学のためにコメントをいただけますと幸いです。
質問にもお答えできる限りお答えしますので是非コメントを残してください。

# 環境
OS : Ubuntu 22.04.3 LTS

前回の[JDKビルド](https://qiita.com/tabatad/items/de0530f0c84be6c93acb)の続きになります。

# 手順

## 1. 資材ダウンロード
“`
$ cd ~/work
$ git clone git@github.com:openjdk/jtreg.git
“`

## 2. ビルド実行
“`
$ bash make/build.sh –jdk $JAVA_HOME
“`

## 3. 成果物確認
“`
$ ./build/images/jtreg/bin/jtreg -version
jtreg 7.3.1-dev+0
Installed in /home/tabatad/work/jtreg/build/images/jtreg/lib/jtreg.jar
Running on pl

元記事を表示

CheerpJのJavaからブラウザベースへの移行が、エンタープライズJavaアプリケーション向けリモート・デスクトップ・ソリューションを凌駕する理由

![My-project-1-1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486144/0dfbce83-bccc-09f9-4bae-b3abab4c3b90.jpeg)
[]()
現在のめまぐるしい世界では、アプリケーションへのリモート・アクセスは必需品となっており、ユーザーはどこからでも、どのデバイスからでもソフトウェアやデータにアクセスできるようになっている。Javaアプリケーションへのリモートアクセスに関しては、[JavaからJavaScriptとWebAssemblyへのコンパイラであるCheerpJと](https://leaningtech.com/cheerpj/)、Citrixのようなリモート・デスクトップ・ソリューションの2つがよく使われる選択肢です。このブログ記事では、CheerpJがデスクトップJavaアプリケーションにアクセスするための優れた選択肢である理由を探ります。

**1 – インストールの手間なし**
リモートデスクトップソリューションと比較してCheerp

元記事を表示

JDKビルド備忘録[Ubuntu 22.04]

# おねがい
この記事を参考にしてビルドに失敗した方は後学のためにコメントをいただけますと幸いです。
質問にもお答えできる限りお答えしますので是非コメントを残してください。

# 環境
OS : Ubuntu 22.04.3 LTS

# ビルド対象JDK
– openjdk jdk17(Public archive)

https://github.com/openjdk/jdk17

# 手順
## 1. 資材ダウンロード
“`
$ mkdir ~/work
$ cd ~/work
$ git clone git@github.com:openjdk/jdk17.git
“`

## 2. ビルド用JDK配備
※すでにjavaコマンドが使えるなら不要
“`
$ cd /usr/local/lib
$ sudo wget https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz
$

元記事を表示

Javaで「指定した位置に文字列を挿入する」の動作を確認してみた

# 概要

Javaで「指定した位置に文字列を挿入する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/stringbuilder/index2.html

# 実装

以下のファイルを作成しました。
“`JSample2_1.java
class JSample2_1{
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append(“ABC”);
sb.append(“DEF”);
System.out.println(sb.toString());

sb.insert(2, “XYZ”);
System.out.println(sb.toString());
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample2_1.java
$ java JSample2_1
ABCDEF
ABXYZCDEF

元記事を表示

MacBookでtreebagを動かす方法

大学の講義でjavaアプリケーションの[treebag](https://people.cs.umu.se/drewes/treebag/)をMacBookで動作させる際に少し詰まったのでメモとして記事を作成しました。

### 結論 cmdで java -jar treebag.jarで動作した
cmdでtreebag.jarをダウンロードした場所に移動し、以下のコマンドで動作した。
“`shell
$ java -jar treebag.jar
“`
jarファイルの実行方法を忘れてましたね。

### Windowsではクリックしていくだけで動作する
Windowsではエクスプローラのtreebag.jarをダブルクリックで起動させてworksheetを読み込めば、基本的には動作する。(treebagの[Manual](https://people.cs.umu.se/drewes/treebag/treebag-manual.pdf))

### Macではクリックするだけでは動作しない
“`
Parsing of ‘/Users/**/Desktop/workshee

元記事を表示

【JAVA入門】サーブレット、JSPについて簡潔説明

## サーブレット
 Javaプログラムを使用してWebアプリケーションを開発するための技術です。サーブレットは、クライアントからのHTTPリクエストを受け取り、処理し、HTTPレスポンスをブラウザに返します。

##### サーブレットコンテナ
 サーブレットは、サーバー上で実行される特別な環境で動作します。この環境は「サーブレットコンテナ」と呼ばれ、HTTPリクエストの受信からサーブレットの呼び出し、HTTPレスポンスの送信までを管理します。代表的なサーブレットコンテナには、Apache Tomcat、Jetty、IBM WebSphereなどがあります。

## JSP
 サーブレットと同じ、サーバサイドプログラムの技術です。サーブレットクラスの代わりにJSPファイルを使用します。
 JSPはHTML内にJavaコードを埋め込むことができ、サーバーサイドで実行されます。

##### JSP実行の仕組み
 JSが初めてアクセスされた時、JSPサーブレットが自動で生成され、自動でコンパイルされる。クラスファイルを実行するとオブジェクトが生成されてブラウザに出力される。2回目以降のア

元記事を表示

【Java入門】各用語を簡単に解説(コンストラクタ,継承,インターフェース,static,例外の説明)

## はじめに

 javaの基本用語である『コンストラクタ,継承,インターフェース,static,例外』について目的・特徴・書き方に分けて簡単に説明します。javaの研修や後輩に教えるときなど簡潔に説明しなくてはいけないと時にお使いください。

## コンストラクタ
 クラスからオブジェクトを作成する際に呼び出される特殊なメソッドです。

#### ・目的
**1\. オブジェクトの初期化**

 クラスのインスタンス(オブジェクト)を作成する際に、そのオブジェクトの初期化を行います。
 コンストラクタは、オブジェクトがどのように初期化されるかを定義します。

**2\. メンバ変数の設定**

 コンストラクタを使用して、オブジェクトのメンバ変数(インスタンス変数)に初期値を設定できます。

#### ・特徴
* コンストラクタの名前はクラスの名前と同じであり、戻り値型を指定しません。コンストラクタは戻り値を持たないため、voidも指定しません。

* 複数のコンストラクタを定義できます。これをオーバーロードと呼びます。異なる引数リストを持つ複数のコンストラクタを定義することで、オ

元記事を表示

Javaで「格納されている文字列の長さを変更する」の動作を確認してみた

# 概要

Javaで「格納されている文字列の長さを変更する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/start/stringbuilder/index9.html

# 実装

以下のファイルを作成しました。
“`JSample9_1.java
class JSample9_1{
public static void main(String[] args){
StringBuilder sb = new StringBuilder();

sb.append(“ABCDEF”);
System.out.println(“[” + sb.toString() + “]”);
System.out.println(sb.length());

sb.setLength(3);
System.out.println(“[” + sb.toString() + “]”);
System.out.println(sb.length());

sb.setL

元記事を表示

ANN: Dogelog Player for Java

It has been already 2 years since we started a new Prolog system. This new Prolog systems is 100% written in Prolog, including the I/O and the runtime compiler. We managed to adress the JavaScript and the Python target.

![doge_java.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416192/660baa00-53a8-4848-8508-02fec62cd6fd.png)

We now completed a new target, namely Java. This target is different since in contrast to JavaScript and Python, the Java programming language is a type

元記事を表示

[AWS] Amazon Textractの実装と機能

# AWSのAmazon Textractの概要と機能

## 概要
Amazon Textractは、AWSのクラウドベースの光学文字認識(OCR)サービス。このサービスは、印刷された文書や手書きのメモ、テーブルなどの情報を構造化されたデータに抽出し、機械的な処理や分析に利用することができる。Amazon Textractは、文字や単語の位置情報、テーブルのセルや行の情報などを抽出するため、精度の高い結果を提供する。

## 機能
以下に、Amazon Textractの主な機能を示します。

1. テキスト抽出: イメージファイルやPDFなどの文書から、文字の情報を抽出し、手書きの文字や印刷された文字に対しても高い精度で認識が可能。
2. テーブル抽出: テキストベースで構成された表やグリッドの情報を抽出し、テーブル内のセル、行、列の情報を構造化した形式で提供する。
3. フォーム抽出: フォームの情報(氏名、住所、電話番号など)を自動的に抽出し、複数のフォーム項目を一括で処理することができる。
4. 関連画像抽出: 文書に関連する画像を検出し、抽出することができる。画像内のオブジ

元記事を表示

スッキリわかるJava入門 実践編 第3版 まとめ – part7 -さまざまなファイル形式

# はじめに
こんにちは ◤●ㅅ●◥ノ

今回は代表的なデータフォーマットとその操作方法について学びました!

## 第7章 さまざまなファイル形式
### 1.データフォーマット
複数のデータについてどのような形式や順序で保存するかを定めたルール
→ __データフォーマット__
複数のデータをファイルに保存したり、ネットワークを経由して遠隔地に伝送する場合に役立つ
ファイル内のデータ構造→ファイルフォーマット
メッセージのデータ構造→メッセージフォーマットor電文フォーマット

### 2.CSV形式
複数のデータをカンマで区切って順に格納するデータフォーマット形式
→ __CSV__ と呼ばれている

書き込み…各データの合間にカンマ記号を出力する
読み込み…基本的に1文字ずつ読み進めながらカンマかどうかを判断する

### 3.プロパティファイル形式
CSV形式のカンマ区切りやスペース区切りでは力不足な場合
→Javaでは __プロパティファイル形式__ を用いる

形式には次のようなルールに従って、データをキーと値のペアで格納する
:star: プロパティファイル形式の

元記事を表示

EclipseのCheckStyleで【cannot initialize module JavadocMethod – Property ‘scope’ does not exist】

# 環境
| 名称 | バージョン |
|:-:|:-:|
| Eclipse | 4.28.0 |
| Checkstyleプラグイン | 10.7.0 |
| Spring Boot | 3.1.4 |

# 問題
Eclipseで、数年前に作成されたCheckstyleを適用したら、エラーになった。
Checkstyle execution failed due to an internal error.

Eclipseのログには以下が出力されていた。
cannot initialize module TreeWalker – cannot initialize module JavadocMethod – Property ‘scope’ does not exist, please check the documentation

※{ワークスペースのディレクトリ}/.metadata/.log

# 解決方法
`cannot initialize module JavadocMethod – Property ‘scope’ does not exist`と言われているの

元記事を表示

OTHERカテゴリの最新記事