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

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

Selenium備忘録

メモせずにいつも同じことを調べてしまうので、備忘的に随時追記。

### 個別のブラウザモジュール(Chromium)を指定
Chromiumのexeファイルを以下のように指定すれば可能。
~~~java
ChromeOptions options = new ChromeOptions();
// Chromiumを指定
options.setBinary(“./lib/chromium-win/chrome.exe”);
~~~
### ブラウザの枠外にある要素を枠内に持ってくる
javascriptで。scrollIntoViewのパラメータ:falseで下寄せ、trueで上寄せ。targetXpathは対象要素のXpath。
~~~java
((JavascriptExecutor) driver).executeScript(“arguments[0].scrollIntoView(false);”, driver.findElement(By.xpath(targetXpath)));
~~~

### 新しいタブを開いてリンクを開く
targetXpathは対象リンクのX

元記事を表示

言語やライブラリによってcapitalizeの振る舞いが異なる

## Java
– 2文字目以降の大文字は大文字のまま
– [org.apache.commons.lang3.StringUtils.capitalize](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#capitalize-java.lang.String-)
“`java
StringUtils.capitalize(“cAt”) = “CAt”
“`
## JavaScript
– 2文字目以降の大文字は小文字になる
– [lodash.capitalize](https://lodash.com/docs/4.17.15#capitalize)

“`javascript
_.capitalize(‘FRED’);
// => ‘Fred’
“`

元記事を表示

Javaを使用してWordでテキストと画像を抽出する方法

この記事では、Javaを使用してWord文書のテキストや画像を抽出または読み取る方法を紹介します。ここでのテキストと画像の抽出には、ドキュメントの本文とヘッダーとフッターのテキストと画像を同時に抽出することが含まれます。

使用したツール:Spire.Doc for Java

JARファイルのインポート方法:

方法1:公式Webサイトからインストールパッケージを[ダウンロード](https://www.e-iceblue.com/Download/doc-for-java.html)します。プログラムの下に新しいディレクトリを作成し、名前を付けます(この例ではlibという名前です)。コントロールパッケージのlibフォルダにあるjarを(下の画像1に示すように)プログラムに新しく作成したディレクトリにコピーします。jarファイルをコピーした後、jarファイルを右クリックし、「ライブラリとして追加」を選択します。インポートを完了します(下の画像2のように)。
**画像1**
![01.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

【Java 条件分岐における数学との表現の違い】

現在独学でJavaを学習中です。
この投稿はその備忘録になります。

## 「数学の表現」と「条件式の表現」
` 「xは10より大きく、20より小さい」`を表現する時、
数学では、
“`
10 < x < 20 ``` となりますが、 Javaの条件式では、 ```java 10 < x && x < 20 ``` のように、`「xは10より小さい、且つ、20より大きい」` となります。

元記事を表示

Javaを使用してWord文書の透かしを追加と削除する方法

Wordには、テキスト透かしと画像透かしの2種類の透かしがあります。テキストの透かしは、ドラフトとか、機密とか、認定とか、現在のドキュメントの状態を示すことができることだけでなく、画像の透かしは、会社のロゴを指定するときに使用します。

この記事では、Javaおよび[Free Spire.Doc for Java](https://www.e-iceblue.com/Introduce/free-doc-for-java.html)コンポーネントを使用してテキストおよび画像の透かしをWord文書に追加する方法と、Word文書から透かしを削除する方法について説明します。

## Jarを追加します

開始する前に、jarファイルをインポートする必要があります。[Free Spire.Doc for Java](https://www.e-iceblue.com/Download/doc-for-java-free.html)をダウンロードして解凍し、Spire.Doc.jarパッケージをlibフォルダーからJavaアプリケーションにインポートします。

Mavenプロジェクトの場合、po

元記事を表示

Couchbase Lite機能解説:クエリAPI② リテラル、識別子、式

## はじめに

ここでは、Couchbase Lite 3.0の新機能であるクエリAPIについて解説します。

なお、Couchbase Mobileについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。

https://techbookfest.org/product/5074954942939136?productVariantID=5042865933647872

また、Couchbase Mobileは、Couchbase LiteとCouchbase Serverとのデータ同期機能を提供します。Couchbase Serverの存在意義、機能詳細、利用方法等については、拙著[NoSQLドキュメント指向データベースCouchbase Serverファーストステップガイド(インプレスR&D刊)](https://www.amazon.

元記事を表示

Tomcatにて外部参照を行っている場合にweb.xmlの解析エラーが発生する

Tomcatにて下記のようなエラーが発生している場合、
web.xmlで外部参照を利用している可能性があります。

““
java.io.FileNotFoundException: Could not resolve XML resource [null] with public ID [null], system ID (後略)
““

この場合web.xmlで外部参照を利用している可能性があります。
詳しくは下記ページをご覧ください。

https://miyakoroom.blogspot.com/2018/09/servlet-webxml.html

ただ閉じた環境で利用するので別に外部参照してもいいよって場合、

context.xmlを以下のように書き換えます。

““xml

““

““xml

““

元記事を表示

Mavenプロジェクトの全プロセスとFilter

# プロジェクトの全プロセス
1.新しいMaven projectプロジェクトを作成します
2. WEB-INFフォルダ内web-xmlファイルを補足します
“`java


UserController
UserController
com.vanilla.controller.UserController


UserController
/user

“`
3.プロジェクト内必要なjarパッケージをpom.xmlファイルに追加されました
“`java

元記事を表示

Spring Boot+Resilience4jでお手軽に流量制御を行う(基本編)

# はじめに
Spring Bootは超便利だが、標準ではRateLimiter(流量制御)の機能は搭載されていない。
Spring Cloud Gatewayを使えばお手軽に実装することも可能だが、少しレイヤが違うので、API Gatewayを使わずに流量制御したい場合にはちょっと過剰な構成となってしまう。

Resilience4jはお手軽に流量制御を実装することができ、Spring Bootとの親和性も高いので、導入の仕方を確認してみよう。

# 依存関係定義
## Mavenの場合
Mavenを使う場合は、“`“`内に以下の依存関係を追加する。

“`xml:pom.xml

org.springframework.boot
spring-boot-starter-aop


org.springframewo

元記事を表示

SpringFox導入時のNullPointerException回避

個人的にAPI自動生成を試してみたく、SpringFoxを導入してみました。
その際にちょっとだけ詰まったので備忘。

## 前提
この記事を参考にSpringFox導入しました。
ありがとうございます!

https://qiita.com/nooboolean/items/ee794ec4b30d9e93bf9f

## 問題のエラー

“`
Caused by: java.lang.NullPointerException: Cannot invoke “org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.toString()” because the return value of “springfox.documentation.spi.service.contexts.Orderings.patternsCondition(springfox.documentation.RequestHandler)” is null
at springfox.documentation.s

元記事を表示

Javaの自分用ドキュメント

“`
string.codePointAt(index)
“`
文字列からindex番目のコードポイントを10進数で返す。

# Aを出力
“`
System.out.println(“\u0041”);
System.out.println((char)0x0041);
System.out.println((char)0b1000001);
System.out.println((char)65);
“`
https://recursionist.io/dashboard/course/2/lesson/123

“`
(int)’A’
“`
char 型を int 型へ型変換を行うことで、ASCII 値を取得できる。(65)

“`
String.charAt(index)
“`
文字列からindex番目の文字を抜き出す。

“`
Calendar calendar = Calendar.getInstance();
“`
Calendarクラスは演算子newではなく、getInstance()メソッドでオブジェクトを作成する。
https://recurs

元記事を表示

Systemクラスのクラス変数について

Systemクラスのクラス変数について

〜JavaAPIを読んで見るシリーズ〜 個人メモ用
以外に奥が深かったよSystem.out.printlnの巻

Systemクラスにて宣言されているクラス変数について、色々わからなかったので調べてみました。
“`java:System.java
public final static InputStream in = null;
public final static PrintStream out = null;
public final static PrintStream err = null;
“`

【疑問点1】
・System.out.println の変数 out には null が入っているはずなのに
 なぜprintlnメソッドを呼び出せるのか
・変数outはfinal修飾子であり、nullで初期化しているのであとから変数を
 代入することは不可能なはず?

■final修飾子にあとから値を代入する例
“`java:TEST1_final.java
public class TEST1_final {
pu

元記事を表示

SpringSecurity独自認証する

# SpringSecurity独自認証する
SpringSecurityを独自認証する設定をまとめておきます。
Filter→Provider(認証)の順で認証を行う

### SpringSecurityの設定
Security全体の設定をまとめる。
“`java:WebSecurityConfig
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

/**
* 独自認証を設定
*/
@Configuration
protected static class AuthenticationConfiguration extends GlobalAuthenticationConfigurerAdapter {

@Autowired
private WebAuthenticationProvider webAuthenticationProvider;

@Override
public void

元記事を表示

Java Silverに出題されるダウンキャストについて整理してみた

以前にJava Silverの資格の勉強をしていた時に、ダウンキャストに関する問題で苦労した記憶があったので、理解を深める意味も込めて要点を整理してみます。

## ダウンキャストとは
ダウンキャストとは、あるインスタンスや変数の型を継承関係にある子クラスの型に変更する処理になります。その名の通り親から子へと下がる(ダウン)型の変更(キャスト)をしているわけですが、型の変更をするだけでインスタンスの実体には変化がない点がポイントになります。

したがって、どのような場合でもこのダウンキャストに成功する訳ではなく、問題ないケース、実行時例外が発生するケース、コンパイルエラーが発生するケースの3パターンがあり、どのパターンに当てはまるかについて試験で狙われることも多いのでそれぞれ整理していきます。 

## 問題ないケース
“`Java
Object o = new Integer(1);
Integer i = (Integer) o;
“`

1行目では、IntegerクラスのインスタンスをObjectクラス型の変数に代入しています。
*Objectクラスは全クラスに共通する最上位

元記事を表示

フロントエンドVue.jsとバックエンドJavaを同時にローカルで立ち上げて疎通確認

# やりたいこと
– フロントエンドとバックエンドの疎通確認をローカルで行いたい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304445/1232bf95-8954-3a30-d373-ade208e68c60.png)

# 状況
– フロントエンドとバックエンドは別々の言語で開発している
– フロントエンドはJavaScript、Vue.jsで実装
– バックエンドはJava、Springで実装、REST API
– 実行確認の際は、各プロジェクトを個別にlocalhost:8080で立ち上げて確認していた
– フロントエンドとバックエンドを同時に立ち上げて疎通確認をするにはどうしたらよいのかがわからなかったので調べて実行してみた

# どうすればできそうか
– フロントエンドとバックエンドそれぞれを、異なるポート番号を指定して立ち上げる
– フロントエンド側からバックエンド側のAPIをたたく

# やったこと
![image.png](https://qiita

元記事を表示

【Java】カレンダー作成

 1月までJavaをしばらく触っていなかったため、過去にRubyで作ったことのあるプログラムをJavaで作ってみることにしました。今回はカレンダー作成問題です。

[アウトプットのネタに困ったらこれ!?](https://blog.jnito.com/entry/2019/05/03/121235)
↑こちらの記事を参考にして問題を解いています。

[【Ruby】カレンダー作成問題を解く](https://qiita.com/kim-shun/items/632799a0050bba84173c)

問題は、次のような形式で今月のカレンダーを表示させることです。

“`
April 2013
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
“`

 今回Javaで作ってみたプログラムはこちらです。今月だけでなく、他の年の他の月も確認したかったため、年と月の変数のみ切り分けました。

“`jav

元記事を表示

Junitを使用した簡易テスト方法

ローカル実行確認ができない状況でロジックだけ確認したいとき。

## ①テストクラスを作成

配置場所は、テスト用のビルドパス・ソースフォルダーがあれば
その配下のどこか好きなpackageに。

“`
package test;
import org.junit.Test;

public class SampleTest {

@Test
public void test() {
    // ここに処理を書く
System.out.println(“Test”);
}
}
“`

## ②JUnit実行

あとは処理を書いてJUnit実行すればコンソールに出力される。

元記事を表示

String.formatを使って空白以外の文字列埋め

簡単に見つからなかったのでメモ。
これ以外にいい方法があれば教えてください。
# **末尾に「#」を付与し12桁にしたい場合**

“`
String.format(“%-12s”, “Test”).replace(” “, “#”);
“`

いったん空白をセットし、
replaceメソッドで空白⇒”#”に書き換えています。

String.formatで直接”#”埋めすることができなかったです。
エスケープ「%」足しても駄目だったのでこちらの方法を使用しました。

元記事を表示

「Java言語で学ぶデザインパターン入門」を読んで復習したいと思ったパターン5つ

## はじめに
新卒1年目エンジニアの私が[増補改訂版 Java言語で学ぶデザインパターン入門](https://www.amazon.co.jp/dp/B00I8ATHGW)を読んで「これは使えそう。勉強になった。復習したい。」と思ったデザインパターンを5つ紹介します。
増補改訂版 Java言語で学ぶデザインパターン入門

結論から言うと、以下の5つのデザインパターンです。

– Template Methodパターン
– Prototypeパターン
– Abstract Factoryパターン
– Decoratorパターン
– Mediatorパターン

では、それぞれ紹介していきます。

## Template Methodパターン
Template Methodパターンは、スーパークラスで処理の枠組みを定

元記事を表示

VSCodeでJavaの開発環境を構築する(Mac向け)

Java言語の勉強をしようとして、VSCodeで開発環境を構築するのに少し手こずってしまった…
とりあえず構築はできて、(今のところ)問題なく学習をやれてるので記事にしようかと思います。
あくまで自分がやった通りの手順を書いていきます。

# その前に
## Javaの開発に必要なツール
①ソースコードの作成と編集(今回は`VSCode`を使用)

②コンパイルによる変換(Javaコンパイラ)
**コンパイルとは**
ソースコードはそのままだと実行できないので、まずコンパイルと言う処理を行い、ソースファイルをクラスファイル(拡張子.class)に変換します。
クラスファイルにはソースコードの各命令をコンピュータが実行しやすいように変換したバイトコードが中に詰まっている。

③完成プログラムの実行(Javaインタプリタ)
バイトコードではまだ実行ができないので、**インタプリタ**というソフトウェアに対してバイトコードの変換と実行を依頼します。インタプリタ内の`JVM(Java Virtual Machine)`という仕組みでバイトコードを読み込みながらマシンコードに翻訳すると共にCPU

元記事を表示

OTHERカテゴリの最新記事