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

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

Javaで標準入出力を利用して外部コマンドをフィルターとして利用する

# はじめに

Java言語で外部コマンドの呼び出しは出来れば避けたいものです。

今回は古いPostscriptファイルの内容をApache Solrに投げ込む必要があり、PDFに変換すればそれ以上の処理を追加する必要がないためGhostscriptパッケージに含まれる**ps2pdf**コマンドを利用することにしました。

検証のため、標準入力にtest.psの内容を書き込み、標準出力からデータを読み出した上でtest.pdfとして保存するコードを作成してみました。実際のファイル形式は*.ps.Zになっているためcommons-compressを利用してdecompressしたbyte配列で取得したPostscriptデータを標準入力に渡しています。

標準入出力では全てのデータをstdinに書き込んでからstdoutへの出力が初まるわけではありません。内部ではstdinに書き込みつつ、制御できないタイミングで発生するstdoutからの読み出し処理を同時に実行する必要があります。内部バッファに収まる程度にファイルサイズが小さければ問題ないかもしれませんが、実際のファイルサイズは小さ

元記事を表示

JavaをインストールしないでJavaアプレットを実行する方法

![applet-browser-1024×568.png.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3486144/980d5378-c643-917f-4ba5-bb3f9057dbbc.jpeg)
# JavaをインストールしないでJavaアプレットを実行したいですか?
CheerpJ Applet Runner 拡張機能を使えば、Javaをインストールすることなく、Google Chrome上で従来のJavaアプレットを実行できます。

[今すぐ無料で試す](https://chrome.google.com/webstore/detail/cheerpj-applet-runner/bbmolahhldcbngedljfadjlognfaaein)

⭐⭐⭐⭐ 110 – 👤 40,000+ users

# JavaをインストールせずにJavaアプレットを実行
CheerpJ Applet Runnerの使い方はとても簡単で、[1クリックで拡張機能をインストールし](https://ch

元記事を表示

Discordボット開発:Javaで実装する音声処理機能のすべて【その①】

皆さん、こんにちは!今日はJavaを使ったプログラミングの楽しさを、Spring BootとJDAを使ってDiscordボットを作成する方法を通じてお伝えします。この記事は、プログラミング初心者やJavaに興味がある方々に向けて書いています。

# 1. 効率的なボット開発
Spring BootとJDAを組み合わせることで、効率的かつ簡単にDiscordボットを作成できます。この組み合わせは、コードの複雑さを減らし、開発者が本質的なロジックに集中できるようにします。

# 2. なぜSpring BootとJDAか?
– **Spring Boot:** 設定がシンプルで、迅速な開発を可能にします。Spring Bootは、依存関係管理やアプリケーションの構成を簡素化し、開発時間を大幅に短縮します。
– **JDA:** Discord APIとの連携を簡単にし、メッセージの送受信、ユーザー管理などをスムーズに行えます。JDAは、Discordの機能をフルに活用するための強力なツールです。

# 3. ソースコードの解説
### DiscordConfigクラス
このクラスは、Dis

元記事を表示

GCP Dataplex機能/実装

# GCPのCloud Dataplexの概要

Cloud Dataplexは、Google Cloud Platform(GCP)のサービスの一部であり、データレイク環境を構築し、データの管理と利活用を支援します。以下に、Cloud Dataplexの機能と詳細について説明します。

## 概要
Cloud Dataplexは、大量のデータを一元管理するためのプラットフォームです。データを各種データソースから集約し、それを効率的に分析するための統合データエンジンを提供します。以下にCloud Dataplexの主な特徴を示します。

– **データソースの統合**: Cloud Dataplexは、様々なデータソース(データベース、データウェアハウス、クラウドストレージなど)からデータを収集し、一元的に管理します。データの流入や変換、統合が容易に行えます。
– **データのバージョン管理**: Cloud Dataplexは、データの更新や変更を追跡し、バージョン管理を行うことができます。過去のバージョンのデータを参照することにより、データの変化を追跡したり、過去の状態に戻したりす

元記事を表示

Javaにおける桁区切り文字の効果的な使い方

### はじめに
Javaプログラミングにおいて、大きな数値の可読性を向上させる方法として、Java 7から導入された桁区切り文字(アンダースコア`_`)について紹介します。

### 桁区切り文字の基本
Javaでの数値リテラルは、読みやすさを向上させるためにアンダースコアを使用して桁を区切ることができます。この機能は、特に大きな数値を扱う際に有効です。

### 使用方法
アンダースコアは、整数、浮動小数点数、そして長整数リテラル内で使用できます。例えば、`1_000_000`や`2.5_000`のように使います。ただし、アンダースコアを数値の始まり、終わり、小数点のすぐ隣、または接尾辞の直前には置くことはできません。

### 利点
桁区切り文字を使うことで、コードの可読性が大幅に向上します。これは、特に数値の桁数が多い場合や、複雑な計算式を扱う際に役立ちます。

### 実例
実例として、Javaでの桁区切り文字の使用方法を見てみましょう。以下にいくつかの具体例を示します:

1. **整数リテラルの例**:
“`java
int maxUploadSize =

元記事を表示

Javaプログラミングにおけるリテラル

Javaにおけるリテラルは、ソースコード内に直接記述される固定値を指します。これらのリテラルは、プログラム実行中に変化することがない値で、プログラムの中で様々な目的で使われます。リテラルの使用は、プログラムの可読性を高め、意図した操作を明確にするために重要です。

## 目次
– [整数リテラル](#整数リテラル)
– [浮動小数点数リテラル](#浮動小数点数リテラル)
– [文字リテラル](#文字リテラル)
– [文字列リテラル](#文字列リテラル)
– [ブールリテラル](#ブールリテラル)
– [特殊リテラル](#特殊リテラル)
– [リテラルの利点と制約](#リテラルの利点と制約)
– [まとめ](#まとめ)

### 整数リテラル
整数リテラルは、日常で最も一般的に使われるリテラルの一つです。10進数、8進数、16進数、2進数の形式があり、通常の数値の表現に使われます。例えば、10進数の整数リテラルは「123」のように書かれ、8進数は「017」のように先頭に0を付けて表現されます。16進数リテラルは「0x7F」のように「0x」で始まり、2進数リテラルは「0b1010」のよ

元記事を表示

Java備忘録

atcoderの問題をJavaで解いたのでその際に使用したJavaの知識を備忘録としてqiitaに残します。

## 問題①
https://atcoder.jp/contests/abc314/tasks/abc314_a
“`math
円周率の小数第 100 位までの値は
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
です。
1 以上
100 以下の整数
N が与えられます。

円周率を小数第
N 位まで出力してください。

より厳密には、円周率を小数第
N+1 位で切り捨て、末尾の 0 を取り除かずに出力してください。
“`
### 解答
“`java
import java.util.Scanner;
public class sample5 {
public static void main(String[] args){
Scanner numIn = new Scanner(S

元記事を表示

ABC337A~Fの解答[Java]

## はじめに
今回はコンテスト中にEまで、コンテスト後にFまで解いたのでそれを載せようと思います。

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc337/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認ください。
では、見ていきましょう。

## A – Scoreboard
問題文は[こちら](https://atcoder.jp/contests/abc337/tasks/abc337_a)

愚直に数え上げて答えを求めました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out = new SimpleWriter(S

元記事を表示

ABC336A~Fの解答[Java]

## はじめに
今回はコンテスト中にDまで、コンテスト後にFまで解いたのでそれを載せようと思います。

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc336/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認ください。
では、見ていきましょう。

## A – Long Loong
問題文は[こちら](https://atcoder.jp/contests/abc336/tasks/abc336_a)

`o`はrepeatメソッドで繰り返せるので、それを使って解きました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter out =

元記事を表示

ただ build.gradle を読めるようになりたい

# 動機

つい1週間くらい前にはじめてbuild.gradle触ってみて「はにゃ?」てなったので、どこかのbuild.gradleを読んでざっくり理解できるようになれたらいいな、のスタンスです

# Gradle

GradleはGroovyを使ってスクリプトを記述するビルドツール

– [Gradle 日本語ドキュメント](http://gradle.monochromeroad.com/docs/)
– [Gradle User Manual](https://docs.gradle.org/current/userguide/userguide.html)
– [ビルドツール make / ant / maven / gradle ざっくり理解メモ](https://qiita.com/MahoTakara/items/ff73338e218b656bedfa)

# 入門するなら

ありがたい先人の知恵(ほんとにありがたい……)

– [Gradle入門](https://qiita.com/vvakame/items/83366fbfa47562fafbf4)

元記事を表示

ABC335A~Fの解答[Java]

## はじめに
今回はコンテスト中にEまで、コンテスト後にFまで解けたのでそれを載せようと思います。

なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc335/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認ください。
では、見ていきましょう。

## A – 202\3\
問題文は[こちら](https://atcoder.jp/contests/abc335/tasks/abc335_a)

特に深いことは考えずに、文字列を切り出して末尾に`4`を付けて出力しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
private static final SimpleWriter

元記事を表示

Java

#クラス
**public**
どのクラスからもアクセスできるということ

**static**
クラス特有の値やメソッドということ

**void**
戻り値なし

“`Java
public static int aaa(int a, int b){
# int ==> 戻り値型
 # aaa ==> 関数名
 # () ==> 引数
}
“`

#読み込み
##Scanner
“`Java
import java.util.Scanner;

Scanner sc = new Scanner(System.in);
“`
##next
“`Java
# 標準入力 dog cat bird

A = sc.nextLine();
System.out.println(A); # ==> dog cat bird
# 改行まで読み込む(String型)

B1 = sc.next();
B2 = sc.next();
System.out.println(B1); # ==> dog
System.out.println(B2); # ==> cat
# 空白まで

元記事を表示

Java11 備忘録

自分用

## 1. ローカル変数の型推論

### 変数宣言

“`java
var number = 42;
var pi = 3.14;
var grade = ‘A’;
var isJavaFun = true;
“`

### コレクション

“`java
var myList = List.of(“Java”, “is”, “awesome”);
var myMap = Map.of(“key1”, 1, “key2”, 2);
“`

## 2. ストリームAPIの新機能

### takeWhileメソッドとdropWhileメソッド

“`java
List numbers = List.of(1, 2, 3, 4, 5, 6);

// takeWhile: 条件を満たす間だけ要素を取得
List result1 = numbers.stream()
.takeWhile(n -> n < 4) .

元記事を表示

JPAにおける柔軟なデータモデル管理:エンティティクラスの多様な活用方法

# はじめに

JPA(Java Persistence API)は、Java のエンタープライズアプリケーション開発におけるデータベースとのインタラクションを抽象化し、オブジェクト指向プログラミングの原則に沿ってデータを管理するための強力なツールです。一般的に、エンティティクラスはデータベースのテーブルを表現するために使用されますが、異なるビジネスロジックやアクセス要件がある場合、同じテーブルに対して複数のエンティティクラスを定義する必要が生じることがあります。

このアプローチは、一対多(OneToMany)や一対一(OneToOne)のような標準的な関係性を超えて、特定の状況に応じたデータアクセスの柔軟性を提供します。例えば、同じデータセットに対して異なるビューやアクセスレベルを持つユーザーに適応する場合などです。一つのエンティティクラスが全てのケースに対応するのではなく、特定の用途に特化した複数のエンティティクラスを持つことで、より洗練されたデータ管理戦略を実現できます。

本記事では、このようなシナリオにおける JPA の活用方法と、異なるエンティティクラスを効果的に使い分け

元記事を表示

「Java API」、「ライブラリ」、「パッケージ」とは…

# 「ライブラリ」
プログラムを作成する上での便利な機能群。(便利なプログラムの部品を沢山集めて、ひとまとめにしたファイルのこと。) 例:Maven
便利な機能を含む、フレームワーク、ユーティリティなどもライブラリという。

# 「Java API」
クラスライブラリ。Javaにあらかじめ添付されている多数のクラス群のこと。
JDK、フレームワーク(サーブレット、struts、spring)、ユーティリティ(ant/jmeter/poi)など。

# 「パッケージ」
一つの意味としてはjavaの名称(フォルダ階層)。
また別の意味で製品(JBoss、oracleDB)や、サービスのかたまりのこと。
ライブラリで集めたプログラムを、似た機能ごとにあつめたもの。
上記してる、フレームワーク、ユーティリティもパッケージ。

元記事を表示

Servlet(サーブレット)とは

# 【Servletとは】
Servletとは、「Webサーバ上(バックエンド)で動く、Javaで書かれたプログラム」のこと。
サーバ上でウェブページなどを動的に生成したり、データ処理を行うために、Javaで作成されたプログラム及びその仕様。
業務用のWEBシステムを開発するときによく使われている。

# 【Servletの役割】
Servlet自体は、WEBページをはじめとし画面に関する処理はいっさい行わず、WEBブラウザからの要求に応えたり、送られてきたデータを処理したりする役割を担っている。
ServletはJavaプログラムなので、単独ではWEBアプリ作成するための機能が不十分。
その為「ホームページのファイル(JSP)」や「サーブレットコンテナ」と呼ばれる他のプログラムと連携する必要がある。

(補足)
・Webサーバ:ホームページやWebサービスを置いておくコンピュータ。
・動的なWEBページ:アクセスしたときの状況(ログインの有無など)に応じて異なる内容が表示されるWebページのこと。 例として、ユーザーが書き込むことで内容が増える掲示板サイトやブログ、表示内容がユー

元記事を表示

Cloud Spanner エミュレータを使ってみる。

## はじめに

この記事は、
 [Get started with Cloud Spanner
](https://www.youtube.com/watch?v=rG3n3YHNZIQ)という動画を参考に、『実際にやってみた』という記事になります。

## この記事で実施する事。
– `Cloud Spanner エミュレータ` とは
– エミュレータをインストールして実行する準備を行う。
– `エミュレータ` で gcloud CLI を使用する。
– Java で `Spanner エミュレータ` を使用する。
– `Spanner` インスタンスを作成。
– `Spanner` データベースを作成。
– 書き込み、読み取り、SQL クエリの実行を行う。

## Cloud Spanner エミュレータ とは
`エミュレータ` を使用することで、`Spanner` 機能を
模倣した開発環境をローカルマシン上に作成できます。

これを使用することで、ユーザーは
Google Cloud プロジェクトや
請求先アカウントを作成することなく、
無料でアプリケーションの開発と

元記事を表示

VSCodeでSpring Bootを利用してプロジェクトを新規作成する

# 初めに
新規参画したプロジェクトでSpring Bootを利用していたため、[クイックスタート](https://spring.pleiades.io/quickstart/)を参考にVSCodeでプロジェクトを新規に作成する

# クイックスタート
手順に従ってプロジェクトを開始する
(設定内容は画面から読み取れる設定を反映した)

## 新プロジェクト開始
Spring Bootで新しいプロジェクトを作成する。
→私はVSCodeで開発しているため、特に説明はなかったが拡張で以下を追加してプロジェクトの作成を実行した。
* Spring Boot Extension Pack

新規プロジェクトだと以下の画面が表示されるため、「Getting Started with Spring Boot in VS Code」を実行する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3616345/ac5cd035-be0b-f8c0-a3ff-733d49c71d41.png)

元記事を表示

MavenでSpringBootを使ったライブラリjarを作成する方法

SpringBootを使ってライブラリ(jar)を作る際、Mavenで単純に作成するとBOOT-INF配下にclassファイルが配置されるため他のJavaから参照できない。
他のjarと同様にトップフォルダにclassが配置されるようにする対応。

## pom.xmlを変更する
pom.xmlに通常のjarファイルを作成する設定を追記する。
“`

・・・ org.apache.maven.plugins
maven-jar-plugin



create-jar package

元記事を表示

ServletFilter, MDC

# ServletFilter
– Java EE の一部であり、セキュリティ、ロギング、圧縮などのサブレットレベルでの作業に適している。
– initとdestroyメソッドはdefault と作成しなくてもよい。
![스크린샷 2024-01-02 23.16.02 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3567846/a0ae9a78-3b89-348e-3db3-59acefcd08ba.png)

– すべてのログを残す例
“`java
import lombok.extern.slf4j.Slf4j;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
i

元記事を表示

OTHERカテゴリの最新記事