- 1. InnoRules7.1のJDKを11にアップグレードする際の注意点
- 2. Hello Worldからの復習 〜演算子〜
- 3. 委譲(delegate)
- 4. MyBatis/iBatisのsqlmapファイルを解析してタグ情報&パラメータを取得する(ソースコード)
- 5. [Google Sheets API] スプレットシートのタイトル(名前)、テーマ、その他の情報を設定する
- 6. JavaGold 自分用黒本メモ
- 7. Java ~関係演算子~
- 8. Qiitaさん曰くエンジニアではあるらしいので
- 9. Hello Worldからの復習 ~息抜き編~
- 10. 安易な継承の落とし穴
- 11. Hello Worldからの復習 〜配列編〜
- 12. Hello Worldからの復習 〜データ型編〜
- 13. javaで作る電卓(サンプルコードあり)(中級者向け)
- 14. ABC341A~Fの解答[Java]
- 15. [Google Sheets API] 行、列を挿入・追加・削除・移動する
- 16. CAP JavaでリモートのREST APIを利用する
- 17. [android]アプリ起動時にスプラッシュ画面を挟む
- 18. Minecraft Forge 1.18.2 Part0 EpitapのMOD開発忘備録について
- 19. MyBatis/iBatisのsqlmapファイルを解析してタグ情報&パラメータを取得する
- 20. javaで直角三角形を表示するプログラムを作る2
InnoRules7.1のJDKを11にアップグレードする際の注意点
# 背景
InnoRulesサーバとTomcatを共有しているWebアプリにおいてJDK11の機能が必要となった。
JDKを11にアップグレードしたところTomcatが起動しなくなったので解決策を記録する。# 環境
– Windows Server 2019
– JDK 1.8.0_144
– InnoRules 7.1
– Tomcat 7.0.53# 発生した問題
## Tomcatが起動しない
`java.endorsed.dirs`オプションが原因。
JDK8まで存在していたJava推奨標準優先メカニズム機能がJDK9で削除されている。
そのためこのオプションが指定されていると起動しない。### 解決策1
`catalina.bat`内の`-Djava.endorsed.dirs=”%JAVA_ENDORSED_DIRS%”`を削除する。### 解決策2
`bin` `lib`フォルダを最新Tomcat7のものに置き換える。
https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.109/bin/## ja
Hello Worldからの復習 〜演算子〜
趣味でギターを弾くけど、〇〇スケール等、専門的な音階がいっぱいあって、良く〇〇スケールて何度と何度の音だっけ?てのがあったなぁ。
エンジニアの実務でも「どっちだっけ?」て聞いたり聞かれたりは別に良くあること。
スムーズに答えれたりしたらスマートだなと思う。**お品書き**
+ 演算子って?—-
**演算子って?**
–
計算するとき足したり引いたりするやつです。もっと言うと、足す、引く、掛ける、割る、余りを出す、比較するとかいうやつです。
| | | | | | |
|:-:|:-:|:-:|:-:|:-:|:-:|
|①|++|–| | | +l -l |
|②| * | / | % | | × ÷ 余り|
|②| + | – | | | + – | |
|③| < | > | <= | >= | 大小比較|
|③| == | != | | | 等しいか|
|④| && | ll | | | かつ、または|
|⑤| = | += | -= | |代入 |
|⑤| *= | /= | %= | | 複合代
委譲(delegate)
# 委譲とは
メソッドの処理を他クラスにやってもらう事です。
他クラスのメソッドを再利用する形となるので、同じメソッドを何度も実装する必要が無くなります。
場合によっては不要な継承を防ぐ事も可能です。# 継承との違い
継承は親クラスの全ての機能を子クラスで利用する事が出来ます。委譲は他クラスの機能の内から必要な部分だけ再利用できます。
その為、親クラスと子クラスの間にis aの関係があるかなどクラス間関係の制約に縛られにくいです。# 参考文献
https://chmod774.com/oop-inheritance-delegation/#toc1
https://itsakura.com/java-delegation
https://qiita.com/tonluqclml/items/c0110098722763caa556
MyBatis/iBatisのsqlmapファイルを解析してタグ情報&パラメータを取得する(ソースコード)
## 1. はじめに
前回の記事「[MyBatis/iBatisのsqlmapファイルを解析してタグ情報&パラメータを取得する](https://qiita.com/5zm/items/0c08b8aa7303789a6ed4)」で説明したツールのソースコードの説明になります。このツールを作成することになった経緯やツールの概要、実行例については前回の記事を参照ください。## 2. ツールの仕様・前提
* Javaのコンソールアプリ
* 必須の引数はMyBatisのmapperファイル、iBatisのsqlmapファイルが格納されたディレクトリパス
* ファイルが1つの場合はファイルパスでもOK
* `-mybatis(デフォルト)`オプションでMyBatisのmapperファイルとして解析する
* `-ibatis`オプションでiBatisのsqlmapファイルとして解析する
* `-f:ファイルサフィックス`で対象のファイルをフィルタする
* 解析結果はJSON形式で標準出力に出力する
* 外部ライブラリは利用せず、Java17の標準機能で実装する![クラス図](https:
[Google Sheets API] スプレットシートのタイトル(名前)、テーマ、その他の情報を設定する
Google Sheets API v4(Java)を使用して、
スプレットシートのタイトル(名前)、テーマ、その他の情報を設定する方法
についてご紹介します。下記のスプレットシートの情報が設定できます。
・***タイトル(名前)***
メニュー:「ファイル」 ⇨ 「名前を変更」
で変更できる内容と同じです。・***テーマ***
メニュー:「表示形式」 ⇨ 「テーマ」
で変更できる内容と同じです。
・***その他***
メニュー:「ファイル」 ⇨ 「設定」
で変更できる内容と同じです。
・***全般タブ***
・言語と地域
・タイムゾーン
JavaGold 自分用黒本メモ### 1章
[java.util.Comparator](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Comparator.html)– `compare`メソッドを持つ関数型インターフェース
– o1がo2より小さい場合は負の整数を返す。
– o1がo2と等しい場合はゼロを返す。
– o1がo2より大きい場合は正の整数を返す。
“`
Comparatorcomparator = new Comparator () {
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
};
“`– [List.sort()](https://docs.oracle.com/javase/jp/8/docs/api/java/util/List.html#sort-java.util.Compa
Java ~関係演算子~
## :ledger:関係演算子
演算子の左側と右側を比較するものです。
条件分岐や繰り返しを行うために必要です。一覧を見てください。
| 演算子 | 例 | 説明 |
|:-:|:-:|:-:|
| > | A>B | AはBより大きい |
| < | A= | A>=B | AはBより大きい(以上)または等しい |
| <= | A<=B | AはBより小さい(以下)または等しい| | == | A==B | AとBは等しい | | != | A!=B | AとBは等しくない | | === | A===B | AとBが型まで等しい | |!== | A!==B | AとBが型まで含めて等しくない | 関係演算子の演算結果は`ture`か`false`の真偽値です。***
<<補足>>・等しくないときの記号で`!`には`NOT`の意味があります。
次回は論理演算子について解説していきます!
Qiitaさん曰くエンジニアではあるらしいので
# はじめに
DegeneracyCraft開発者のEpitapです!
Qiitaさん曰くエンジニアの定義として・プログラミングの知識と経験を活用している人
とのこと。
私もエンジニアという判定らしいです。
それ故に、この場をお借りして一旦振り返ってみることにします。
(以前の記憶は朧げ)# 大まかな流れ
始めたのは2022年9月中旬辺りでしたね。自分のやりたいことを自ら供給するためにDegeneracyCraftを作ったことが始まりです。
XがTwitterであった時からMODのことについてまとめているのでもし暇かつ興味があれば、ぜひご参照ください。### 2022年9月
ここらへんでIntelliJの開発環境を立て、始動しました。
MOD製作の解説動画を見まくり、なんとか自分で扱えるようにと励んでいました。
この時のVersionは意外なことに1.17.1でした。### 2022年12月~2023年1月
少しずつ軌道に乗ってきた(追加アイテム、ブロック類追加可能レベル)になったくらいの時、開発環境が爆散。
Hello Worldからの復習 ~息抜き編~
自分の復習、アウトプットでやっているが、話の枕を考える時間のほうが長いのはなぜだろう。
自分は落語が好きなのだが、本題に入る前の話が好きだったりもする。
存命ではないが、六代目桂文治は好きな落語家の一人。
立川談志の枕なんかは脱線しすぎて何の話か分からないこともあったそうで。だから本題より面白かったりもする。
去年、KISSのライブに行ったけど、本編より会場について始まるまでの高揚感が一番楽しかったりする。今回も例外なく前置きが長いが、どうも書きたくなってしまう性分のようで。
これも何かのアウトプットになっているのだろうと書きながら思う。今回は少し息抜きでちょっとしたお遊びをする。(理解を深める復習には変わりない。)
##### お品書き
+ コマンドラインからのデータ入力
+ CmdLineのSample
+ 試してみよう—-
##### ◆コマンドラインからのデータ入力
javaコマンド実行時にプログラムにデータを渡せる。どゆこと?
今まではjava クラス名
これだけをコマンドラインに入力していた。
“`cmd:cmd
C:\Java\1>ja
安易な継承の落とし穴
継承を行った子クラスは、継承元の親クラスの一種として扱われます。
その為、一部のフィールドやメソッドのみを流用する目的で継承すると、継承されている機能の一部が、誤った用途で使用できてしまう場合があります。
このような事態を避ける為には親クラスと子クラスの関係性に注意する必要があります。親クラスのメソッド等を子クラスで全て利用する場合は良いですが、親クラスのメソッドを一部使わない場合は注意が必要です。
Hello Worldからの復習 〜配列編〜
昔、バスケの練習で何パターンかオフェンスの練習していて、何故この動きが必要かあまり理解せずやっていたら試合で防がれ、何故防がれたかしっかり理解できず、攻め倦んで監督から怒りの〇〇を喰らった記憶がある。
実務のテストでは、配列を良く使いました。
例の如く何となくでやっていました。
問題なく動いていましたが、理解は浅く、何がどうとかいう説明は、、、できません。。。
結構惨めな思いをしたのも前進する為の糧。
**お品書き**
+ 配列って?
+ 配列の生成
+ 配列の初期化
+ 多次元配列
—-##### 配列って?
同じデータ型の変数を複数まとめて管理するもの
配列の生成には**new**を使う。生成時にデフォルト初期値が設定される。
`(0、’ ‘(空文字)、false)`**データ型[] 配列名 = new データ型[要素数];**
例えば点数を3つまとめて管理するなら
`int[] score = new int[3] ;`配列は参照型のため、変数には参照値が入る。
※作った変数scoreのイメージ図
| score |
|:-:|
| ( ) |
Hello Worldからの復習 〜データ型編〜
何とな〜く覚えただけで終わらせてしまうと毎回ググれカス止まりで、毎回調べて時間をロスしてしまう気がしています。
大体、毎回、いつも同じメンバーと再会。状態。
しっかり理解し、自然と使えて応用が出来て、何故この記述でこの処理なのかを分かりやすく説明できて初めて理解した状態になるんだと思う。
まだまだです。。
毎回話しの枕が長いが、今回は**データ型**の復習。##### お品書き
+ データ型って?
+ 基本データ型Sample
+ 参照型
+ 参照型Sample—-
**データ型って?**
–
##### データ型の種類
##### ◆基本データ型
データ型は約3000種類あると言われていますが、その中で8種類が基本データ型。
なんなら**8種類しかない。**##### ①整数型
| 型名 | サイズ | 表現可能な桁数 |
|:-:|:-:|:-:|
|**byte**|**8ビット**| -128~127 |
|**shoat**|**16ビット**| -32.768~32.767 |
|**int**|**32ビット**| -2147483648~21
javaで作る電卓(サンプルコードあり)(中級者向け)
# 前置き
今回作る電卓は前回作った初心者向けのアップグレード版みたいなものです。
初心者向けの方を作りたい方は以下のリンクから飛んでください。
https://qiita.com/Puroguramingu_Bennkyoutyuu/items/5a6f93a53ba7fffb110f
# サンプルコード
“`java:電卓.java
//インポート
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import java.util.Stack;public class AdvancedCalculator extends Application {
pr
ABC341A~Fの解答[Java]
## はじめに
今回はコンテスト中にEまで、コンテスト後にFを解いたのでそれを載せようと思います。なお、僕のライブラリは[提出結果](https://atcoder.jp/contests/abc341/submissions?f.Task=&f.LanguageName=Java&f.Status=AC&f.User=viral)よりご確認下さい。
では、見ていきましょう。## A – Print 341
問題文は[こちら](https://atcoder.jp/contests/abc341/tasks/abc341_a)制約から`101010…0101`みたいな感じになると予想できて、最初の`1`を除けば`01`を$N$回繰り返せば良いので、そのように実装しました。
“`A.java
final class Main{
private static final boolean autoFlush = false;
private static final SimpleScanner sc = new SimpleScanner(System.in);
pr
[Google Sheets API] 行、列を挿入・追加・削除・移動する
Google Sheets API v4(Java)を使用して、
スプレットシートの行または列を挿入、追加、削除、移動する方法
についてご紹介します。コードを実行する際は、
[⧉[Google Sheets API] Google Sheets API v4をJavaで操作する](https://qiita.com/doran/items/3d43f776188b2281044c)
を参照ください。
“`
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
“`
|No|目次|
|—|—|
|1|[行、列の挿入](#1-行列の挿入)|
|2|[行、列の追加](#2-行列の追加)|
|3|[行、列の削除](#3-行列の削除)|
|4|[行、列の移動](#4-行列の移動)|## 1. 行、列の挿入
指定したシートに位置を指定して行または列を挿入します。**サンプル コード**
“`
public Request insertDimension(String fileId, Integer s
CAP JavaでリモートのREST APIを利用する
## はじめに
CAP JavaでリモートのREST APIを利用したい場合、CAP JavaはRESTプロトコルをサポートしていないので、SAP Cloud SDKを使うことが選択肢となります。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/43b51b16-255b-c69f-7b9d-6e779e00596c.png)
https://cap.cloud.sap/docs/guides/using-services#supported-protocolsSAP Coud SDKには[OpenAPI Client](https://sap.github.io/cloud-sdk/docs/java/features/rest/generate-rest-client)という、APIにアクセスするためのクラスを生成してくれるツールが用意されています。生成されたクラスを使用することで、APIのエンドポイントや受け渡すデータ構造をあまり意識せずにコードを書くことができま
[android]アプリ起動時にスプラッシュ画面を挟む
LINEなどのアプリを起動した際に、初めに数秒表示されるスプラッシュ画面。
今回はそちらを実装してみたいと思います。
スプラッシュ画面を導入するメリットは以下になります。– ユーザーエクスペリエンスの向上
– アプリ読み込み待ちの不安感軽減2つ目のメリットが結構大きいと思います。
## 前提条件
開発環境:Android Studio Dolphin | 2021.3.1 Patch 1
言語:Java
テンプレート:任意(本記事ではEmpty Activityを使用)## 実装
スプラッシュ画面の導入方法はいくつかありますが、
今回はスプラッシュ画面用のActivityを作成する方法で実装していきます。### スプラッシュ画面で使用するアイコン作成
File > New > Vector Asset から作成できます。
デフォルトでresフォルダのdrawableに格納されます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520337/ef463fda-
Minecraft Forge 1.18.2 Part0 EpitapのMOD開発忘備録について
こんにちは!DegeneracyCraft開発者のEpitapです!
マインクラフトのMOD…
・いざ作ろうとしても、そもそもどこを調べたらいいのかわからない。
・YouTubeでもmodding(MOD製作の意)解説はあるが、大体英語なのでよくわからない。
・やりたいことを思いついてもその実現方法についてよくわからない。
↑その結果折れてしまう…正直めちゃくちゃ大変だと思います。
なので、ここでは私Epitap(初心者)が
**超絶ゴリ押し(コードが端麗ではなく煩雑という意味)**
ながらもなんとか実装に漕ぎつけたものを一度振り返ってみようというものです。
また、MOD開発を志す人にほんの少し助力にでもなれれば幸いであるというものです。ここに書き連ねることについての注意点は
・McJty氏、Kaupenjoe氏、henkelmax氏、桜鬼神氏、柊ラッセルつばさ氏らのコード・解説を参考にして、**ゴリ押しで**実装しているものがほとんどであること
・参考にしてもらっても構いませんが、以下の開発環境で開発しているということが前提である:::note info
開発環境 Int
MyBatis/iBatisのsqlmapファイルを解析してタグ情報&パラメータを取得する
## 1. はじめに
かなり久しぶりのQiita投稿になります。とあるシステム開発プロジェクトのFW刷新においてDBアクセスに[iBatis](https://qiita.com/tags/ibatis)を利用していたものを[MyBatis](https://qiita.com/tags/mybatis)に変更する作業を行いました。設定ファイル(sqlmapファイル→mapperファイル)の変換処理は[ibatis2mybatis](https://github.com/mybatis/ibatis2mybatis)を利用して何とか終わりましたが、動的SQLの評価箇所を集中的に試験・確認したい状況になりました。そこで動的SQLの情報やパラメータ情報を取得したい必要性が発生して今回の記事となります。ソースコードについては量があるので[別の記事](https://qiita.com/5zm/items/65aeaf290315dd42dab1)としました。## 2. 概要
MyBatisのmapperファイルやiBatisのSqlMapファイルを読み込み、XMLのタグ情報、属性情報、テ
javaで直角三角形を表示するプログラムを作る2
# 問題
int型の変数nを作成し、一辺がn個の右下直角の三角形を表示するプログラムを作成せよ
例) nが4の場合
## 実行結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3717834/f071e39c-16b3-2e9d-a4e1-12e9e0f03284.png)## 解答
“`java
public static void main(String[] args) {int n = 4;
for (int i = 1; i <= n; i++) { dispCircle(i, n); System.out.println(); } } static void dispCircle(int i, int n) { for (int j = n; j >= 1; j–) {
if (i < j) { System.out.print(" "); } else { System.out.print("●")