JAVA関連のことを調べてみた

JAVA関連のことを調べてみた

java csv比較ツール

比較元と比較先のSJISエンコードされたCSVファイルをSQLiteデータベースにインポートし、その差分をSJISエンコードされたCSVファイルとして出力するSwingベースのアプリケーションです。

“`java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.sql.*;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
import com.opencsv.CSVReader;
import com.opencsv.CSVReaderBuilder;
import com.opencsv.CSVWriter;
import com.opencsv.exceptions.CsvValidationException;

public clas

元記事を表示

Javaの利用状況についてのトレンドを知ろう!「 Javaエコシステムの現状」レポート概説 (2024年版)

# 「Javaエコシステムの現状」レポートとは?
Javaエコシステムの現状(State of the Java Ecosystem Report)」レポートは、ITシステムにおけるJavaの利用状況についての調査結果をまとめたもので、New Relicが概ね年次で公開しているものです。日本を含む全世界のJavaの利用に関するトレンドが把握できるものになっています。

2022年, 2023年もレポートが公開されていますが、なんと2024年のレポートはユーザー登録なく見ることができます!

今回は、2024年のJavaエコシステムの現状から読み取れる動向についてざっくり解説していきます!! 詳細はレポート本体👇をご覧ください。

:::note info
[「2024年 Javaエコシステムの現状」レポートはこちらから
](https://newrelic.com/jp/observability-forecast/2023/state-of-observability)
:::

※なお、本レポートのデータはNew RelicのエージェントをJav

元記事を表示

Javaで「文字列の文字の数(コードポイントの数)を取得する(String.codePointCount)」の動作を確認してみた

# 概要

Javaで「文字列の文字の数(コードポイントの数)を取得する(String.codePointCount)」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`JSample9_1.java
class JSample9_1{
public static void main(String[] args){
String msg1 = “東京都港区赤坂”;
String msg2 = “𪛊あ”;

System.out.println(msg1.codePointCount​(0, msg1.length()));
System.out.println(msg2.codePointCount​(0, msg2.length()));
}
}
“`

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

元記事を表示

【Servlet/JSP】初心者のJDBCエラーメモ

プログラミング初心者がServlet/JSPでJDBCを初めて使った際、エラーがいくつか出たので対処したメモです。

# 使用環境
PC:MacBook Air 2018
macOS:Sonoma 14.3.1
IDE:Eclipse
DB:MySQL
JDBCドライバ:MySQL Connector/J

# No suitable driver found
“`No suitable driver found for 接続先DB名(MySQLの場合はjdbc:mysql://localhost/DB名)“`は、JDBCドライバが見つからないため、DBに接続できないエラーです。
自分の場合は、Eclipseで作成したプロジェクトのクラスパスにJDBCドライバを追加したものの、Apache TomcatのクラスパスにJDBCドライバを追加していないのが原因でした。

## 対処法
Eclipseで「起動構成」から、「Apache Tomcat」→「Tomcat10_Java21」を右クリック→「編集」→「クラスパス」→「ユーザー・エントリー」→「外部JARの追加」からJDBCドライ

元記事を表示

Java Silver合格体験記

## Javaに関する知識レべル
エンジニア2年目がJava silverを受験し、合格したのでその体験記を書いていくよ。
ちなみに筆者はプログラミング未経験で入社し、プロジェクトでJavaを書くようになって半年程度だよ。
言語はJavaをメインに使っていて、少しPythonを触っているよ。
Javaの資格は、`Java SE Bronze`の資格を持っているよ。
これから勉強方法を記載していくよ。

## Java Silverの概要
Java Silverの試験には、`Java SE 8 Programmer I`と`Java SE 11 Programmer I`があるので注意してね。
難易度としては、Java初級者から中級者程度で、実際のコードを読み解いて解決できる力がいるそうだよ。
“`
試験名:Java SE 11 Programmer I
試験番号:1Z0-815-JPN
関連資格:Oracle Certified Java Programmer, Silver SE 11
受験料(税込):37,730 円 (2024年6月現在)
出題形式:選択問題
試験時間:180

元記事を表示

[Mac] [Eclipse]「Spring スターター・プロジェクト」作成でエラー

# 環境

– MacBook Pro 2019 (Intel Mac)
– macOS Monterey 12.6

– Eclipse 2023-12 (4.30.0) Intel Mac 最終版

https://willbrains.jp/index.html#/pleiades_distros2023.html

# 新規プロジェクト作成

scr 2024-07-01 15.41.11.png

新規に「Spring スターター・プロジェクト」を作成すると、しばらくして、エラーが発生した。

scr 2024-07-01 15.50.27.pngword2vecを使うバッチをサーバー上で動かそうとしたらjava.lang.RuntimeException: ND4J is probably missing dependencies.

忘れないうちにメモを残します

word2vecを使って単語間の類似度を測るアプリを作っていて、ローカルPC(Win)では動いていたのにサーバ環境にデプロイしたら動かなくなった
いろいろ調べた結果対処方法がわかったのでそれをメモ

### 何が起きたのか

ローカルPCでは動いたJavaバッチをサーバ(AmazonLinux2023)にデプロイして実行したら下記の例外が出ました

“`java
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘initW2V’ defined in class path resource []: Failed to instantiate [void]: Factory method ‘initW2V’ threw exception with message: null
at org.springframework.beans.factory.support.ConstructorResolver.insta

元記事を表示

Java奮闘記: JARファイルって初めて見るぞ

# はじめに

## 筆者について
新卒3年目のデータエンジニアです.

– https://github.com/KazuSh1geru
– https://www.linkedin.com/in/%E5%92%8C%E5%8F%B2-%E9%AB%98%E8%8D%89%E6%9C%A8-7b912b2a6/

## 執筆の背景
初めてJARファイルを作成しようとした時、そのプロセスが意外と複雑であること、そして必要な情報がWeb上に十分に存在しないことに気づきました。これが、JARファイルの作成過程を詳細に解説するブログを書くことにした主な理由です。
このブログを通じて、同じような課題に直面するかもしれない他の開発者たちに向けて、参考となるTIPSを提供したいと思います。

## JARファイルとは何か?
Java ARchiveの略で、Javaクラスファイルとリソースを一つのファイルにまとめたものです。
依存関係を含めて配布や実行が簡単になるため、Javaアプリケーションの管理と配布を効率的に行うことができます。

私は初めてJARファイルを触るきっかけとしては、Salesfo

元記事を表示

Javaのアプリ

コンソールではなくGUIで対話式のインターフェースを提供するために、JavaのSwingを使用します。以下に、Swingを用いて対話式のファイル比較ツールを実装したコードを示します。

### Swingを用いた対話式ファイル比較ツール

“`java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.nio.file.*;
import java.util.*;
import java.util.concurrent.*;

public class FileComparator extends JFrame {
private static final int THREAD_POOL_SIZE = 4; // Intel i5の4コアに合わせて設定
private static final int BUFFER_SIZE = 8

元記事を表示

Javaで「文字列の長さを取得する(String.length)」の動作を確認してみた

# 概要

Javaで「文字列の長さを取得する(String.length)」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/string/index6.html

# 実装

以下のファイルを作成しました。
“`JSample6_1.java
class JSample6_1{
public static void main(String[] args){
String msg1 = “Hello”;
String msg2 = “東京都港区赤坂”;

System.out.println(msg1 + “の長さは ” + msg1.length());
System.out.println(msg2 + “の長さは ” + msg2.length());
}
}
“`

以下のコマンドを実行しました。
“`
$ javac JSample6_1.java
$ java JSample6_1
Helloの長さは 5
東京都港区赤坂の長さは 7
“`

# ま

元記事を表示

Java on Ubuntu on QEMU for RISC-V on Ubuntu on WSL2 をやってみる

この所、[Eclipse Temurin 21 が RISC-Vで利用可能になった](https://adoptium.net/blog/2024/04/eclipse-temurin-21-and-22-available-on-riscv/)り、[Ubuntu 24.04 が RISC-V 搭載 SBC「Milk-V Mars」を正式サポートしたり](https://gihyo.jp/admin/clip/01/ubuntu-topics/202405/31)しましたね。ということは、RISC-V な市販ボード PC で Ubuntu の起動も、さらには Temurin の動作もサポートされることになります。30 億のデバイスで走ることが知られる Java ですが、まだまだその版図を広げていくつもりのようです。せっかくなので Milk-V Mars を買って試してみたかったのですが、どうやら品切れ中のようでした。というわけで、Ubuntu on QEMU for RISC-V on Ubuntu on WSL2 で Java を走らせてお茶を濁すこととします。

## Ubuntu

元記事を表示

LibertyでJNDIをためす

# 目的

LibertyでJNDIのプログラムをテストします。

# Gitレポジトリ
用意したGitレポジトリをクローンします。

“`
git clone https://github.com/pdprof/ejb-jndi.git
cd ejb-jndi/ejb-jndi-docker/
“`

# Libertyのイメージをビルドして開始

JNDIのlookupコードとサーバー構成を含むイメージをビルドします。

“`
./setup-docker.sh
./start.sh
“`

# Libertyの構成

ここで使用するJNDIの登録は Liberty の server.xmlにしてあります。

[サーバー構成ファイルからの定数の JNDI バインディングの使用](https://www.ibm.com/docs/ja/was-liberty/base?topic=dail-using-jndi-binding-constants-from-server-configuration-files)

を参考に

https://github.com/pdprof

元記事を表示

BinarySearchで特定値の頻度を見つける方法

# Intro
upperBoundとlowerBoundはバイナリ探索(binary search)に基づく二つの関数で、整列された配列またはリストから特定の値の位置を探すのに使われます。 この二つの関数の違いと役割は次のとおりです。
> ここでBinary Searchをする前に、arrayは整列されていなければなりません。

## LowerBound
lowerBound関数は、特定の値targetが配列またはリストに初めて現れる位置を探します。 もし、targetが配列に存在しない場合、targetより大きい値が初めて現れる位置を返します。 つまり、target以上の最初の位置を探します。

例:
並べ替えられた配列 arr = [1、2、4、4、5、6] があると仮定します。

lowerBound(arr, 4) は2 を返します。 (配列で4が初めて現れる位置)
lowerBound(arr, 3) は2 を返します。 (3は配列にないので、3より大きい値が初めて現れる位置)

## UpperBound
upperBound関数は、特定の値targetが配列またはリス

元記事を表示

【Java SE 11 Silver】合格体験記

# 1. はじめに
### 自己紹介
初めまして、コマと申します。春から社会人になりました。
研修の一環でJava Silverの取得が必須ということもあって、受験をすることになりました。
この度、晴れて本番で9割取ることが出来たので、試験勉強過程などで学んだことなどを交えながら、記事を書き進めていきたいと思います。
![GQ0JdvWbkAAFGZ1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338199/1529f5c2-bf58-b69c-d862-4c22d1eb611e.jpeg)
# 2. 試験の概要
Java SE11 Silverは、Oracleが提供するJavaプログラミングの認定試験です。概要は以下の通り。
問題数: 80問
試験時間: 3時間
合格ライン: 63%
受験料: 37730円
###### 出題範囲
+ Javaテクノロジと開発環境についての理解
+ 簡単なJavaプログラムの作成
+ Javaの基本データ型と文字列の操作
+ 演算子と制御構造
+ 配列の操作
+

元記事を表示

[Java] apache commons mathで行列演算(ベクトル編)

行列編はこちら→https://qiita.com/AlliumAllium/items/b05bd5195f1b68041ab9

# コード
“`Java
import org.apache.commons.math4.legacy.linear.RealVector;
import org.apache.commons.math4.legacy.linear.MatrixUtils;

public class Test {
public static void main(String[] args) {
// 宣言
RealVector vector1 = MatrixUtils.createRealVector(
new double[] { 1, 0, -2 });
System.out.println(“v1 =”);
System.out.println(vector1);
RealVector vector2 = MatrixUtils.creat

元記事を表示

apache commons mathで行列演算(行列編)

# はじめに
apache commons mathで行列計算をしたかったので覚書
ベクトル編はこちら→ https://qiita.com/AlliumAllium/items/7d0ad9eabaf3c01d6090

# 行列Aの単項演算
## コード
“`Java
import org.apache.commons.math4.legacy.linear.RealMatrix;
import org.apache.commons.math4.legacy.linear.RealVector;
import org.apache.commons.math4.legacy.linear.EigenDecomposition;
import org.apache.commons.math4.legacy.linear.LUDecomposition;
import org.apache.commons.math4.legacy.linear.MatrixUtils;
import org.apache.commons.math4.legacy.linear.RRQRDecompos

元記事を表示

Javaの開発キットJDKをインストールする

# 動機.イチからJavaの開発環境を整えたい。
当方、プログラミングの初学者の方向けに
学習コンテンツを提供させていただく機会がしばしばあります。
その際に初学者の方でもJDKをインストールできるよう
ドキュメントをしたためさせていただきます。

## 公式ドキュメント
[こちら](https://docs.oracle.com/javase/jp/17/install/overview-jdk-installation.html#GUID-E8A251B6-D9A9-4276-ABC8-CC0DAD62EA33)のページでJDKのダウンロード&インストールの手順がまとまっています。
Linux, MacOS, WindowsのそれぞれのOSでページがありました。
*今回、JDKのVersionは22にしています。
*AWSでJavaプロジェクトをデプロイするときに使いがちな[CorrettoもVersion22に対応しているよう](https://aws.amazon.com/jp/about-aws/whats-new/2024/03/amazon-corretto-22-gen

元記事を表示

SpringBootアプリケーションをEC2にデプロイする手順備忘

## はじめに
SpringBootアプリケーションをEC2にデプロイした手順をまとめる
#### ご参考

https://qiita.com/sai-i/items/00fc6e27235f94fcd0fa

https://qiita.com/sai-i/items/c7786653bfbd3f00218b

## 作業

AWS環境構築
VPCの作成 から EC2インスタンスの起動
インバウンドセキュリティグループの設定変更
EC2にミドルウェアのインストール
Apache HTTP Serverのインストール
Apache Tomcatのインストール
元記事を表示

【java未経験】java silver SE11 に合格するまでにやったこと

# はじめに
先日java silver SE11の資格試験に合格したので、合格までに行った学習方法についてまとめます。

# そもそもなぜ java silverの資格取得を考えたのか
### java silverの資格取得を考えた頃のエンジニアプロフィール
– 開発未経験でIT企業に入社した新卒エンジニア(プログラミング歴0日)
– 最初の2か月間の研修の中で以下のことを学んでいる
– java言語に関する基本的な用語(クラスやメソッドなど)などを、役割だけなんとなく理解している
– paizaなどのプログラミングサイトで簡単な問題を解いたことがある
– 実際にプログラム上で、javaをほとんど記述したことはない

# そもそもなぜ java silverの資格取得を考えたのか
2か月間の研修を経てグループ組織に配属され、実際に大規模なプログラムの中のjavaに手を加えていく際に、心の中で叫びました!

**「う~~~ん!!なんとなくしか理解してないから、全然分からん!
コードも長くなると混乱!!!やばい!!」**

javaの基本的な仕組

元記事を表示

Java SE Bronzeに合格した備忘録

プログラミング(Java)の勉強1ヶ月目でJava SE Bronzeに合格したので、次の資格勉強に向けての備忘録です。

# Java SE Bronzeとは?
Java SE Bronzeは、Oracle認定のJava資格で、言語未経験者向けの入門資格です。
試験時間65分で選択問題が60問あり、正解率60%で合格となっています。
(自分は正解率85%で合格でした。)

## 勉強期間
約1ヶ月
(この資格の範囲だけ勉強していた訳ではないので、資格の範囲だけに勉強を絞ったらもっと短くできそうです。)

## 勉強方法
入門書(スッキリ)で範囲の基礎知識を一通り学び、まずは黒本の問題を一周しました。
その後、間違えた問題や知識が曖昧な問題の解説を読んで解き直し、わからない問題が無くなるまで何周か読み直しました。

# 次の資格に向けて
Bronzeは飛ばす人もいると思いますが、個人的にはCBT試験を受けるのが初めてだったので、今後受ける試験の練習にもなっていい経験になりました。
次は、基本情報技術者試験を受けようと思います。

元記事を表示

OTHERカテゴリの最新記事