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

JAVA関連のことを調べてみた2022年09月27日
目次

【備忘録】Eclipseで動的WebをAntビルドしてWARを作る

# 概要
前回の備忘録(下記)に続いて、Antビルドをしてwarファイルを作ってみます。

https://qiita.com/TAKANEKOMACHI/items/ed84bfb1fa54765e47b2

# 手順1:Antビルドファイルを作成する
まずは、この状態であること(前回の続き)から確認してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222251/0a1998ae-17e4-5644-0223-720053daf24d.png)

プロジェクトを選択して右クリックし、「エクスポート」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222251/6cd654d8-46f9-db56-2f93-0c5d5d76d201.png)
「一般」-「Antビルドファイル」を選択して「次へ」
![image.png](https://qiita-image-

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの日付・時刻の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの日付・時刻の比較

# Python

https://qiita.com/papi_tokei/items/43b1d15a6694f576486c

# Ruby

https://qiita.com/prgseek/items/c0fc2ffc8e1736348486

# PHP

https://qiita.com/aminevsky/items/a222845ddbdd2536da56

# Java

https://qiita.com/suema0331/items/35da67426ffea0fb4435

# JavaScript

https://qiita.com/mzmz__02/items/e316d3962e7d3ecfebf8

# Perl

https://perlzemi.com/blog/

元記事を表示

Maven で jarファイル に dependency が反映されない場合

備忘録

## jar ファイルに \ の内容が追加されない。

以下のように maven-jar-plugin を使用した pom.xml に記入した

“`xml:pom.xml
org.apache.maven.plugins
maven-compiler-plugin
${java.version}
${java.version}
org.apache.maven.plugins
maven-jar-

元記事を表示

ルジャンドルの公式をJavaで実装する

よく見ているヨビノリさんの動画で、ハーバード&MIT数学トーナメントのこんな問題が紹介されていました。「n!の末尾に290個の0が並ぶ最小の自然数nを求めよ」。

解法は動画の素晴らしい解説を見ていただくとして、今回はJavaで問題を解いてみます。類似の問題が毎年出題されているようですので、ある数(int)を与えると、その階乗(BigInteger)とその全ての素因数と冪指数の配列(int[][])を保持できるクラスを作成し、より汎用的に使えるようにしてみましょう。数学クイズ以外の用途が思い浮かばないけど。

“`java:LugendresFactorizer.java
package FactorialSolver;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.lang.Math;
import java.math.BigInteger;

pub

元記事を表示

JSONIC で POJO の JSON 変換を試してみたら private class まで出力してくれた件

# JSONIC とは

[JSONIC](https://github.com/hidekatsu-izuno/jsonic) (Simple JSON encoder/decoder written in java) はシンプルなで使いやすい Java 用 json ライブラリです。ライセンスは Apache 2.0。

既に古くなっており、公式でも [jackson](https://github.com/FasterXML/jackson) への移行を推奨しています。が、いまだに多くのシステムで使われているとおもいます。

# Java Object を JSON 化してみる

とりあえず、以下のような簡単な古典的な Java Object (POJO: Plain Old Java Object) を用意してみます。

“`java:User.java
public class User {
public int age;
private String name;
public String getName() {
return this.name;
}
pu

元記事を表示

Kubernetes上で実行されているDatadog AgentでJava JMX カスタムメトリクスを取得する方法

## はじめに
今回は、Kubernetes上で実行されているDatadog AgentでJMXカスタムメトリクスを取得する方法を記述していきたいと思います。

## 本記事を読むにあたっての前提条件
* 本記事で指すアプリケーションはTomcat+SpringBootで作られたアプリケーションのことです。

* 本記事はKubernetes上で実行されているDatadog AgentでJava JMXカスタムメトリクスを取得するための設定方法に取り上げています。Java JMXカスタムメトリクスをアプリケーションのコード上でどう設定するか等については触れません。
* なお、Datadog-AgentはDaemonSetで動かします。

## 実行環境
* Kubernetes環境
– EKS
* application
– Java
* Tomcat + SpringBoot
## 設定方法

### Datadog Agent側
#### Configmap.yamlの設定

“`yaml:configmap.yaml
apiVersion: v1
kind

元記事を表示

Cookieの取得・設定・削除

## 前提

`name=test` というCookieを操作する

## Java

Cookieの取得
“`java
public Response get(@CookieValue(value=”test”, required=false) String cookieValue){
String value = cookieValue; //SpringBootならこれでOK。簡単。
}
“`

Cookieの設定
“`java
public void set(HttpServletRequest request, HttpServletResponse response){
Cookie cookie = new Cookie(“test”, “value”);
cookie.setSecure(true);
cookie.setHttpOnly(true);
cookie.setPath(“/cookie”);
response.addCookie(cookie); //生成したCookieをレスポンスに追加する。
}

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの文字コードの比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの文字コードの比較

# Python

https://qiita.com/ny7760/items/d9c247781a790210936d

# Ruby

https://qiita.com/ima1zumi/items/28ef13f5af3d9afdeaf3

# PHP

https://qiita.com/suin/items/3edfb9cb15e26bffba11

# Java

https://qiita.com/motoki1990/items/cee6a4a75c0320b79ec4

# JavaScript

https://qiita.com/weal/items/3b3ddfb8157047119554

# Perl

https://perlzemi.com/blog/201610061475

元記事を表示

【備忘録】Eclipseで動的Webを新規作成してGitHub管理まで

# 概要
Eclipseで動的Webのプロジェクトを触っていると、「すでに出来ているプロジェクトへの改変」作業を繰り返すので、実は「新規」で作ろうとすると手順が思い出せずアタフタします。

なので、ここでは備忘録としてEclipse(Pleiades)で新規に動的Webを作成し、HelloWorldを表示するServlertを作成した上でGitHubに登録するまでの手順を備忘録で残しておきます。

★初稿では「Mavenに変換」してMavenプロジェクトにしてましたが、記載内容的には意味がなかったので、Maven化するのを削除しました。(9/26)

# 前提条件
* Eclipse環境(Pleiades)【今回は2022-09版で進めます】
 →Java Full Editionを使用しています。
 →正確には2022-06を更新して09にしてます。(が、途中で2022-09にすげ変わってます。途中で気づいた)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222251/718cc3d

元記事を表示

Joda-Timeで固定の現在時刻を返す

例えば、ユニットテストで現在時刻返すメソッドを固定日付で返したい、などのケースがある。

“`gradle
implementation ‘joda-time:joda-time:2.11.1’
“`

“`java
import org.joda.time.DateTime;
import org.joda.time.DateTimeUtils;

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

DateTimeUtils.setCurrentMillisFixed(DateTime.parse(“2010-06-30T01:20”).getMillis());
DateTime now = DateTime.now();
System.out.println(now); // 2010-06-30T01:20:00.000+09:00

DateTimeUtils.setCurrentMillisSystem(); // 現在時刻を返すように

元記事を表示

【AWS】Javaのアプリをデプロイ part2

jarファイルを使用している為かtomcatをインストールしなくてもデプロイして起動する事が
出来ました。

【JDK インストール】

//ルートユーザーに変更

「sudo su」
//Java11をインストール
「sudo yum install java-11-amazon-corretto-headless」
//インストール後に確認
「java –version」
「javac –version」

【apache インストール】

//apacheをインストール

「yum install -y httpd」
//インストール後にapacheを確認
まずapacheを起動させます。
「systemctl start httpd」
ブラウザにEC2のIPアドレスを入力してapacheのページが
開ければ確認完了。

Postgres インストール

//インストール

「sudo yum install -y postgresql postgresql-server postgresql-devel postgresq

元記事を表示

Java で N-gram 書いてみました

## きっかけ

未経験からの IT エンジニアへの転職活動をしているのですが、その情報収集で Java を使う現場が多いと聞いたので、Java で N-gram を実装してみました。

## 入力と出力

イメージとしては、

“`java
String[] documents = {
“test1”,
“test2”,
“test3”,
}
“`

の各document に、create_ngram なる関数を当てて、インデックスを作り、search_query(query) という関数で検索をするイメージです。
アウトプットは、以下のような感じです。

“`
{0=[2, 44, 1, 43, 0, 42], 1=[2, 17, 1, 16, 0, 15]}
“`

文書ID と マッチした文字の箇所が出力されます。
検索は OR など色々とあると思いますが、完全一致の AND 検索で検索させました。

コードは下にあります。

https://github.com/YmBIgo/Java_Easy_Ngram/blob/master/NgramCreator2.java

元記事を表示

【AWS】Javaのアプリをデプロイ part1

今回はAWSの設定の仕方からJavaのアプリ(jarファイル)をデプロイする方法を記述します。
※メモになるので内容は拙いです。

【VPCの起動とサブネットを構成】

VPCダッシュボードで「VPCを作成」をクリックします。
・作成するリソースはVPCのみ。
・名前タグは「aws_test」とします。
・CIDRブロックは「10.0.0.0/16」にしておきます。

その他の設定はデフォルトです。

![vpc_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665680/01884a11-85ef-c504-68a6-833035110163.png)

続いてサブネットの構成を行います。

VPC IDは先程作成したVPCを選択して下さい。

![サブネット1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665680/e3934058-249b-7bfa-a223-b9681afd0d45

元記事を表示

【Jackson】nullを特定の値にシリアライズする3通りの方法

## TL;DR
`Jackson`で`null`を特定の値にシリアライズする場合、以下の3つの方法が有ります[^haaku]。

[^haaku]: 自分が把握している限りです。

1. `ObjectMapper`にシリアライザーを設定する
2. `JsonSerialize`アノテーションにシリアライザーを指定する
3. マッパー固有の方法で設定する

以下、それぞれの方法について書きます。
ここで、説明のためのシリアライザーとしては以下を用います。
このシリアライザーは`null`を`n/a`という文字列にシリアライズします。

“`java
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;

public class MyNullValueSeria

元記事を表示

メモ(serialize,deserialize)

# Serialize,Edit,Deserialize
イメージ
serialize -> 製品を設計図にする (インスタンス→byte)
deserialize -> 設計図を製品にする (byte→インスタンス)

serialize -> edit -> deserialize
製品のままではいじれないところを設計図に落とし込んで(serialize)変更(edit)、変更した設計図を基に再度製品化(deserialize)する感じ?

Spigotプラグインで使う機会があったので書きました。
エンチャ本の内容を操作するのにItemStackをシリアライズしてMapにしてからEnchantmentStorageMeta(以後、Meta)を取得して弄る。弄ったMetaをデシリアライズしてItemStackにして終わり、という流れ。
なお、Spigotではシリアライズ化したデータであってもSpigot APIを通さずに直接編集すると怒られてエラーが出る場合があるので注意。

# 参考
https://qiita.com/NBT/items/9f76c9

元記事を表示

ABC270A~Eの解答[Java]

## はじめに
今回はD以外はコンテスト中に、Dは解説を見てから解いたものを載せようと思います。

では、見ていきましょう。

## A – 1-2-4 Test
問題文は[こちら](https://atcoder.jp/contests/abc270/tasks/abc270_a)

1、2、4を二進数で表すと001、010、100となることから、それぞれの問題が解けたかはビットが立ってるかで判定できます。ということで、$A|B$が答えになりますね。
“`A.java
class Main{

static Library System = new Library(java.lang.System.in,java.lang.System.out);

public static void main(String[] args)throws IOException{

//A、Bの受け取り
int A = System.in.nextInt();
int B = System.in.nextInt();

//答えの出力
System.out.println(

元記事を表示

Androidでの推論実行方法 Java編 【PyTorch】

# 概要

既存のJava製AndroidネイティブアプリにPyTorchベースの推論処理を実装する必要があったので、備忘として調べた結果をまとめます。

1. PyTorch Java APIで推論処理を記述する(本記事)
2. [Python(Chaquopy)で記述した推論処理を呼び出す](https://qiita.com/ta-sr/items/984779da293432f58ee1)

# 環境

ハードウェア: SHARP SH-T01
プロセッサ: Snapdragon 665 (2GHz & 1.8GHz – Octa)
メモリ: 4GB
OS: Android 12

# 推論実行方法

PyTorch Java APIを使うと、Javaクラスにそのまま推論を記述することができます。

“`Java:https://github.com/pytorch/android-demo-app/blob/master/HelloWorldApp/app/src/main/java/org/pytorch/helloworld/MainActivity.java
// i

元記事を表示

テンプレートエンジンThymeleafの基礎(SpringBoot編)をまとめてみた

Thymeleafとは?

ThymeleafはJava用に作成されたテンプレートライブラリです。プログラムはJavaのクラスとして実装されています。Thymeleafは、タグの中に「th:□□」という特殊な属性を用意し、また${ } といった特殊な記号を使って値を記載することで、HTMLタグの構造に影響を与えることなく内容を記述できます。後ほど詳細について見ていきます。

(https://www.thymeleaf.org/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/e849db7a-5c04-1818-4b3f-24ba8ce55f96.png)
MEMO:
「Thymeleaf」はHTMLなどのテンプレートエンジン。
「Spring Boot」ではJSPではなく「Thymeleaf」を使う。
(https://javazuki.com/articles/thymeleaf-introduction.html)

次に

元記事を表示

Java ファイル 読み書き

テキストファイルの読み方
FileWriterおよびFileReaderを使う
“`java
import java.io.*;

public class Main{
public static void main(String[] args)throws Exception {
FileReader fw=new FileReader(“README.md”);
System.out.println(“全てのデータを読んで表示します”);
int i=fw.read();//1文字のみ読み取れる
while(i!=-1){
char c=(char)i;//readから返される値はint型なのでキャストする
System.out.print(c);
i=fw.read();
}
System.out.println(“ファイルの末尾に到達しました”);
fw.close();

}

元記事を表示

プログラミング教室でRubyとRailsを中心に習っていた初心者がJavaで課題作成に取り組んだ備忘録2

備忘録1の続きになります。

## 配列の作成
配列を利用するための最初の手順は配列を宣言すること。
宣言の仕方には、以下の2種類がある。
“`
①データ型 + 配列変数名 + []
②データ型 + [] + 配列変数名
“`
データ型は,プログラム内で扱うデータの種類のこと
(Railsだとデータベース設計する時に決まるカラムの型が近いかな?)

複数の文字列を格納する時はString型を使う。
char型は1文字しか格納出来ない。

配列の最初のインデックスは1ではなくて0から始まる。(これもRubyと一緒)
配列への代入の書き方はいろいろあるが下記が一番分かりやすい
“`
// 宣言と代入を同時に行う書き方
int nums[] = {1,2,3,4,5};
“`
配列から特定の値を取り出す時は[]でインデックス番号を指定して出力する
“`
public static void main(String[] args) {
int nums[] = {1,2,3,4,5};
System.out.println(nums[1]);
}
“`

## for分とは

元記事を表示

OTHERカテゴリの最新記事