- 1. VSCodeでJavaの開発環境を構築する(Mac向け)
- 2. Gradle で Azure Web Apps にデプロイする
- 3. Javaを使用してWordコメントの追加、返信、変更(置換)、削除する方法
- 4. ベル文字を出力して音を鳴らしてみた。
- 5. 10歳児がサイバセキュリティの専門家になるには
- 6. Javaを使用してPowerPointスライドをコピーする方法
- 7. 外部ネットワークに繋がっていないAIXでJProfilerを動かすまで
- 8. JavaのAPIについてまとめてみた
- 9. 【初心者向け】pom.xml基礎知識
- 10. [Python,Java]pom.xmlからMaven依存ライブラリ一覧を取得する方法 メモ
- 11. いよいよ入社
- 12. Hibernate3によるupdate時にStaleObjectStateExceptionが発生するようになった原因
- 13. Azure Spring Cloud Enterprise の Service Registry の利用方法について
- 14. 【まるで関数型】JavaのFunctionクラス入門
- 15. Javaを使用してWord文書を暗号化および復号化する方法
- 16. 標準入力で受け取った文字列を数値配列化【Stream.of().mapToInt】
- 17. SpringでQuartzをDBと一緒に使ってみる。
- 18. Period について
- 19. リフレクションでKotlinの要素を取得する【Kotlinリフレクション編】
- 20. Spring Bootで使われるアノテーションをまとめてみた
VSCodeでJavaの開発環境を構築する(Mac向け)
Java言語の勉強をしようとして、VSCodeで開発環境を構築するのに少し手こずってしまった…
とりあえず構築はできて、(今のところ)問題なく学習をやれてるので記事にしようかと思います。
あくまで自分がやった通りの手順を書いていきます。# その前に
## Javaの開発に必要なツール
①ソースコードの作成と編集(今回は`VSCode`を使用)②コンパイルによる変換(Javaコンパイラ)
**コンパイルとは**
ソースコードはそのままだと実行できないないので、まずコンパイルと言う処理を行い、ソースファイルをクラスファイル(拡張子.class)に変換します。
クラスファイルにはソースコードの各命令をコンピュータが実行しやすいように変換したバイトコードが中に詰まっている。③完成プログラムの実行(Javaインタプリタ)
バイトコードではまだ実行ができないので、**インタプリタ**というソフトウェアに対してバイトコードの変換と実行を依頼します。インタプリタ内の`JVM(Java Virtual Machine)`という仕組みでバイトコードを読み込みながらマシンコードに翻訳すると共にC
Gradle で Azure Web Apps にデプロイする
# Gralde で Azure Web Apps にデプロイする
Gradle を使って Azure Web Apps にデプロイする必要があったので、その覚え書きです。いつもは maven を使っている Gradle 初心者です。
リポジトリは以下で公開されており、
https://github.com/microsoft/azure-gradle-plugins
プラグイン情報は以下から参照できます
https://plugins.gradle.org/plugin/com.microsoft.azure.azurewebapp
GithubのほうはReleaseタグが真面目に切られていない気がしますが、執筆時点での最新版は、 Dec 2021 にリリースされた `1.2.2` です。 Maven プラグインと比べても歩調を合わせてアップデートされているようには見えます。
## 設定方法
ゼロからやろうとすると、色々説明することが多いので、すでに az コマンドサブスクリプションに繋がっている前提で話しを進めます。
細かい話は、Github Wiki に書かれて
Javaを使用してWordコメントの追加、返信、変更(置換)、削除する方法
Wordコメントは、特定のドキュメントのコンテンツに注釈を付けるためによく使用されるツールまたは方法であり、問題の説明とマーク修正の役割を果たします。この記事では、Wordのコメントを操作する方法を紹介します。
1.コメントの追加:コメントにテキストを追加し、コメントに画像を挿入します。
2.コメントに返信します。
3.コメントの変更または置換:コメントのテキストコンテンツをテキストに置き換え、コメントの画像をテキストに置き換え、コメントの画像を画像に置き換えます。
4.コメントの削除:指定されたコメントのすべてのコンテンツを削除し、指定されたコメントの指定されたコンテンツを削除します。
使用したツール:Free Spire.Doc for Java(無料版)
JARファイルのインポート(参照):方法1:公式Webサイトから[jarパッケージ](https://www.e-iceblue.com/Download/doc-for-java-free.html)を入手し、解凍します。
インポート手順1:プログラムに新しいディレクトリディレクトリを作成し、コントロールパッケ
ベル文字を出力して音を鳴らしてみた。
授業で正規表現の学習中に、ベル文字というモノがあることを知ってしまった。
コレは鳴らしてみないと# ベル文字とは
その昔、テレタイプなどの通信機器で、通信相手先の端末のベルを鳴らすために送信した制御文字(¥a)のようです。
さすがのオッチャンでも、テレタイプは現物見たことないので、よう解りません。https://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E6%96%87%E5%AD%97
# では、鳴らしてみます
といっても、ベルが鳴るわけではなく、システムのアラート音(通知音)が鳴るだけですけどね。
## まずJava~~~Java:Bell.java
class Bell{
public static void main(String[] args) {
System.out.print(“\007”);
}
}
~~~
`javac Bell.java`
`java Bell`鳴りました。## シェルスクリプト
Macなので Z Shellです
“`bash:Bell.sh
#!/bin/zsh
echo
10歳児がサイバセキュリティの専門家になるには
将棋のプロに10歳でなれるように、サイバセキュリティの専門家も10歳でなれるだろうという仮定のもとに、10歳児がサイバセキュリティの専門家になるにはどうするとよいかを示す。
将棋でも、ピアノでも、10歳で専門家になるのに、特別の教育方法はない。
バイオリンは、小さいバイオリンから始めてという、小さい子供用の教育方法がある。囲碁は九路盤がある。
サイバセキュリティの専門家は、どちらの方法だろうということを考える。
どちらも提案してみればいいだけかもしれない。
10歳になったら、3歳児、5歳児にも教育して欲しい。
3さいじがわかるcyber security(サイバセキュリティ)
https://qiita.com/kaizen_nagoya/items/7a3ec58e81422a898fec
5さいじがわかるcyber security(サイバセキュリティ)
https://qiita.com/kaizen_nagoya/items/105173527a8e54502bb7
# 子供用の入り口を設ける方法
子供用の入り口を設ける方法には、子供用のプログラミング教材
Javaを使用してPowerPointスライドをコピーする方法
この記事では、Javaプログラムを使用してPowerPointスライドをありのままコピーする方法を紹介します。ここでコピーするケースを2つ紹介します。
・同じスライドドキュメント内でコピーする
・異なるスライドドキュメント間でコピーする**使用したツール:Free Spire.Presentation for Java(無料版)**
JARファイルの取得とインポート:
方法1:jarファイルパッケージは、E-iceblueの公式Webサイトから[ダウンロード](https://www.e-iceblue.com/Download/presentation-for-java-free.html)できます。ダウンロード後、ファイルを解凍し、libフォルダー内のSpire.Presentation.jarファイルをJavaプログラムにインポートします。次のインポート効果を参照してください。
 **外部ネットワークに接続されていない**
クライアント Windows10+VNC Viewerhttps://www.realvnc.com/en/connect/download/viewer/
# JProfilerはGUIが必要なのでVNC Serverをインストール
“`rpm -Uvh tightvnc-server-1.3.10-2.aix6.1.ppc.rpm“`で入れば話は早いが、それは勿論無理。
## 「AIX Toolbox」から片っ端からrpmを取得して転送
https://www.ibm.com/support/pages/aix-toolbox-open-source-software-downloads-alpha
クライアント側で取得しscpでAIXに転送。
rpmコマンドは最終的に以下のようになった。
rpmさんに怒られるままに泣きながらダウンロードして転送を繰り返した。“`
rpm -Uvh tightvnc-s
JavaのAPIについてまとめてみた
JavaのAPIについて調べたのでまとめてみます。
そして、今回はその中でもメジャーなものだけを出していきます。Mathクラスは、様々な計算をするためのメソッドを提供します。
## powメソッド
累乗の値を求める時にやります。
積立の値を求めたい時に使えます。##やり方(powメソッド)
“`
pow(数値, 累乗の値);
“`なので、「2の2乗」を表したいときは
“`
pow(2, 2);
“`と書きます。
## sqrtメソッドMathクラスの平方根の値を求める、つまり素因数分解をしたい時に使うことができるメソッドです。
## やり方(sqrtメソッド)
“`
sqrt(求めたい数字);
“`とすると、結果を求めることができます。
## compareToメソッド
compareTo()メソッドは、比べられる変数とこのメソッドの引数として指定された値のどちらかが大きいかを指定します。
戻り値として
“`
−1
0
1
“`があります。
これは、引数として指定された値より大きい場合は1を、同じ場合は0を、小さい場合
【初心者向け】pom.xml基礎知識
Javaを学習している上で度々利用するpom.xmlが結局何なのか分からなかったので、自分なりに調べアウトプットのために投稿しました。
Javaを学習中の方にもお役に立てましたら幸いです。
(間違っている箇所がありましたら、ご指摘頂けると幸いです。?)## 目次
### ①pom.xmlとは
### ②pom.xmlの機能
## pom.xmlとは
:::note info
Mavenで作成したプロジェクトのビルド内容を設定するファイルの事!
:::### ・Mavenとは
Maven は `Project Object Model (POM)` という考え方に基づき、、プロジェクト管理ツールとしてプロジェクトに関する色々な情報を POM に集約し、POMの情報に基づきプロジェクト全体を管理するツール。このMavenの主な機能としては、:::note info
プロジェクトの作成・コンパイル・テスト・パッケージング、配備といった各タスクの支援。
::::::note info
プロジェクトサイトジェネレータ(HTMLで作成した静的なプロジェクトサイトの自動生成
[Python,Java]pom.xmlからMaven依存ライブラリ一覧を取得する方法 メモ
* Java/Mavenプロジェクト開発の際に、pom.xmlファイルから依存ライブラリの一覧をcsv形式で取得したかった。
* 取得用のPythonスクリプトを作成したため、メモとして残しておく。## 事前準備
* ライブラリインストール
“`
pip3 install lxml
“`
* テスト用`pom.xml`準備“`xml
4.0.0
com.example.test
いよいよ入社
# 入社初日の研修
緊張と不安に押しつぶされそうになりながらも初日の研修が始まりました…。
これから自分はやっていけるのだろうか…それともついていけなくて諦めるのだろうか…。
そんな思いを胸に終えた初日の肝心の学習内容は1 午前中はJavaの基礎の演算子やif文、for文と言ったJavaどころかプログラムの基礎的な部分を改めて復習しましたが自分の中ではどうも苦手意識のあるfor文if文を遂に克服出来た実感を得られたのが一番の収穫でした。
2 午後からはJavaSilverの資格取得の学習、JavaSilverSE11という書籍を30ページ程を読み進めて思ったのが自分の中では身についたと思っても言語化して落とし込む事が出来ていないのが丸わかりでした…。
基礎的なことですらもまだまだ身につくのは先かもしれません…。こんな感じで1日を終えました、明日からはもっと上手くやれたらなぁ…と思い学習に励みたいと思います。
Hibernate3によるupdate時にStaleObjectStateExceptionが発生するようになった原因
# 事象
コードは何も変えていないのに
hibernate3 で insert してから update すると突然下記のエラーが発生するようになりました。
“`
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)
“`
環境は下記のいずれの組み合わせでも発生。
Java6, Java8
MySQL 5.5, MySQL 5.6, MySQL 5.7そんな古い Version を使うなよ。という突っ込みはさておき原因を調べてみました。
# 原因
数年ぶりに MySQL Connector/J を最新に上げたことにより発生するようになっていました。エラーになる流れとしては
1. hibernate3 で insert をする。
このとき、Java ではミリ秒を保持し、DB ではミリ秒は四捨五入される。2. その後、同じ entity で update する。
J
Azure Spring Cloud Enterprise の Service Registry の利用方法について
この記事では、Azure Spring Cloud Enterprise で VMware Tanzu® Service Registry を使用する方法について説明します。
Tanzu Service Registry は、商用 VMware Tanzu コンポーネントの 1 つです。 これにより、マイクロサービス・アーキテクチャの主要な考え方の 1 つである Service Discovery パターンを適用したアプリケーションの開発がとても簡単になります。 各サービスのクライアントを、手動で構成したり、特定の形式のアクセス規則を適用することは困難で、特に本番環境においては不安になります。 その代わりに Tanzu Service Registry を使用すると、登録済みのサービスをアプリケーションで動的に検出し、呼び出すことができます。
通常、Spring Boot のアプリケーションで、Service Registry や Discovery の機能を利用するためには、通常、[Service Registration and Discovery](https://sprin
【まるで関数型】JavaのFunctionクラス入門
# Functionクラスとは?
Functionクラスはメソッドをインスタンスとして扱えるもので、引数などにも代入する事が可能です。### この記事について
1. 細かいJavaの文法等は扱いません。
2. 対象者:Java初学者
3. ちょいむずかもしれない。
## 使用例
使用例の一つとしてFunctionクラスを引数で取るメソッドを考えてみましょう。例えば以下のようなメソッドがあったとして、
“`java:Main.java
private static class Explanation {
/**
* 文字列を成形するメソッド
*/
public static String formatter(String arg) {
return arg + “!”;
}
}
“`
こんなメソッドを引数に取るメソッドを書きた〜い!と思った時、
皆様はどのようにしてコードを書きますでしょうか。
(こんなメソッドを引数に取るメソッド例↓)
“`java:Main.jav
Javaを使用してWord文書を暗号化および復号化する方法
一部の重要なドキュメントでは、ドキュメントの内容が漏洩しないようにするために、ファイルを暗号化する必要があります。ファイルを表示するときは、正しいパスワードを入力してファイルを開く必要があります。以下では、Wordファイルにパスワード保護を追加する比較的簡単な方法と、暗号化されたWordファイルのパスワード保護をキャンセルする方法を紹介します。
**使用したツール:Free Spire.Doc for Java**
JARファイルのインポート:
公式ウェブサイトから[ダウンロード](https://www.e-iceblue.com/Download/doc-for-java-free.html)します。ダウンロード後、ファイルを解凍し、libフォルダー内のSpire.Doc.jarファイルをJavaプログラムにインポートします。次のインポート効果を参照してください。
.mapToInt】
# Paizaのスキル問題に挑むためのコピペ
[参考記事](https://qiita.com/takahirocook/items/51265073d04958250b12)
私の初心者レベルでは一発理解が出来なかったので、私なりの解説をメモ代わりに記載しておく。## Paizaのスキルチェックはすべて標準入力
なのでまずは受け取って、配列に入れて、配列を数値化して、そうして初めて変数XだYだのに入れ込める。
## @takahirocook 氏のコード
~~~java
import java.util.Scanner;
//Stream APIのインポート
import java.util.stream.Stream;public class Main {
public static void main(String[] args) {
// scannerのインスタンス化
Scanner sc = new Scanner(System.in);// 空白区切りに文字型で要素ごとに配列に分割
SpringでQuartzをDBと一緒に使ってみる。
# はじめに
Springで定期実行をする場合は@Scheduledがお手軽に使えていいのですが、
後から時間の変更をする等の複雑な処理には対応していないようです。
そこでQuartzを導入しようとしたのですが情報が少なかったので備忘録として残します。# 依存関係
* Lombok
* Spring Web
* Spring Data JPA
* H2 Database
* Quartz Scheduler# 設定
インメモリではなくデータベースを使用する。
“`application.properties
spring.quartz.job-store-type=jdbc
“`
Quartz用の設定はquartz.propertiesを作成する。
もしくはapplication.propertiesに下記をつけ足して書く。
“`
spring.quartz.properties.org.quartz…..
“`
各コネクションプール用の設定https://github.com/quartz-scheduler/quartz/wiki/How-to-Us
Period について
ハマったのでメモ。
# 結論
閏日(2/29)から 2/28 までの Period が返す年数は、Joda Time と Java Time で結果が異なる。
# 環境
| ソフトウェア | バージョン |
|:-:|:-:|
| Joda Time | 2.10.8 |
| Java | 17.0.2 |# 動作確認
1992-02-29 ~ 2022-02-28 までの年数を Period で取得してみる。
## Joda Time
“`scala
Welcome to the Ammonite Repl 2.5.2 (Scala 2.13.8 Java 17.0.2)
@ import $ivy.`joda-time:joda-time:2.10.8`
import $ivy.$@ import org.joda.time._
import org.joda.time._@ new Period(new LocalDate(1992,2,29), new LocalDate(2022,2,28)
リフレクションでKotlinの要素を取得する【Kotlinリフレクション編】
Kotlinリフレクションを使用したKotlin要素の取得方法についてまとめました。
リフレクションは、privateなクラスやメソッドにアクセスするために便利な機能です。
前回の[Javaリフレクション編](https://qiita.com/satona-oinuma/items/5000f166185f8d7f1b89)に引き続き、今回もAndroidの単体テスト例を用いてまとめています。尚、ご意見や筆者の認識の誤り等がありましたら、お気軽にコメントをお願いいたします。
## まとめ
### JavaリフレクションとKotlinリフレクション
今回、Kotlinリフレクションでは以下の要素が取得できると分かりました。– public クラス
– public / private プロパティ
– public / private メソッド
– public / private コンストラクタそして、privateクラスのみ取得ができませんでした。
そのため、基本的にはKotlinリフレクションを使用し、privateクラスを取得する時のみJavaリフレクションを使用
Spring Bootで使われるアノテーションをまとめてみた
業務上、Spring Bootを使っており、その中で結構な数のアノテーション(@でクラスとかにかかれているやつ)が出てくるので備忘録も兼ねてまとめてみました。
#「Spring Boot」とは
Spring Framework(Javaのフレームワーク)のひとつでアプリケーションを作るための仕組み。
Spring Boot以外にも下記リンクあるような様々なプロダクトが用意されている。
[Spring | Projects](https://spring.io/projects)Spring Bootの特徴として、
`・あらかじめオススメのプロジェクト(プロダクト)の組み合わせが含まれている`
`・自動で設定が含まれている`
`・組み込みサーバが同梱されている`
といったことが挙げられる。#アノテーション一覧
個人的に重要そうだなと思ったアノテーションは太字にしています。| アノテーション | 説明 |
|:-|:-|
|**`@SpringBootApprication`**|Springアプリケーションにつけることで、諸々の設定が不要になる。後述する`@Enabl