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

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

try-with-resources文の書き方

#動機
try-with-resourcesがイマイチ使いこなせていない。
Java7で導入され、Java9で一部仕様変更があった。
この際、しっかりと使いこなせるように整理したい。

#参考にした資料
The Java® Language Specification
Java SE 11 Edition

#検索キーワード
java spec

#構文規則

“`x:
TryWithResourcesStatement:
try ResourceSpecification Block [Catches] [Finally]

ResourceSpecification:
( ResourceList [;] )

ResourceList:
Resource {; Resource}

Resource:
{VariableModifier} LocalVariableType Identifier = Expression
VariableAccess

VariableAccess:
ExpressionName
FieldAccess
“`

“`x:
VariableM

元記事を表示

ifLinkにサイコロIMSが新たに追加になりました。

#はじめに
ifLinkマイクロサービスを開発している八教と申します。

新たに3つのサイコロ出目及び出目の合計を取得し、ifLinkに通知するIMSが追加されましたので、
紹介させていただきます。

#ifLinkとは
https://iflink.jp/

#サイコロIMSとは
3つのサイコロの出目、または出目の合計をifLinkのIFとして設定できます。
例えばIF条件をサイコロ出目の10以上とし、サイコロを振って10以上が出た場合に「あたり!」をトーストメッセージIMSで表示できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1780474/2172fb35-9f3f-ce00-fe3e-ca9c86458260.png)

#サイコロで遊ぶまで
サイコロで遊ぶまでに以下の準備が必要です。
1.IAIIMSをインストールする
  IAIIMSはサイコロIMSとifLinkをつなげる為に必要です。
  以下リンクよりインストールしてください。
  https://dev.i

元記事を表示

【mac OS】Big Surに変更したら注意すること

cordova でAndroid Studioのエミュレーター動かない問題

macでOSをBig Surに変更後、Android Studioのエミュレータを起動して、cordovaと連携してアプリ開発をする場合は注意が必要です。

“`
% cordova run android
“`

をターミナルで実行すると、

`Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.`

というエラーが表示されます。
下記のStackoverflowで記載されているようにSDK versionを変更しても、新たにエラーが生じてしまいます。

https://stackoverflow.com/questions/68387270/android-studio-error-installed-build-tools-revision-31-0-0-is-corrupted

新たなエラーは下記の通りです。

元記事を表示

The forked VM terminated without saying properly goodbyeした時の対処方法

### 事象
mvn testでJUnitテスト実行失敗。下記のエラーログがでた。

> The forked VM terminated without saying properly goodbye. VM crash or System.exit called

#### “forked”とは?

「フォークする」= テストするためにJVM内にプロセスを生成すること

mavenでJUnitテスト実行するときには「maven-surefire-plugin」というプラグイン経由で実行する(のが普通だと思ってる)のだが、テスト用に生成するプロセス数は↓のようにforkCountで制御できる。

“`
例) フォークする最大プロセス数を「3」に設定する  org.apache.maven.plugins
 maven-surefire-plugin
 
  3
  -Xmx1024m

元記事を表示

Javaのクラス継承

Javaのクラス継承の検証をしました

“`java
class Kotehan1 {
void kotehan(String t) {
System.out.println(t);
}

}
//Kotehan1クラスを継承してAlparajyu1クラスを作成する
class Alparajyu1 extends Kotehan1 {
private String kotehan_name;
void kotehan(String t) {
this.kotehan_name = t;
System.out.println(this.kotehan_name);
}
String getkotehan() {
//System.out.println(this.kotehan_name);
return this.kotehan_name;
}
}

public class Alpa15 {
public static void main(String[] name) {
// Kotehan1インスタンスを呼び出す
Kotehan1

元記事を表示

今日のQuizKnockの動画の同じ文字がそろうと消える問題文作成プログラムをJavaで組んでみた。

プログラミング歴2か月弱です。
QuizKnockでこんな動画を見つけて、いい練習になると思い組んでみました。

“`Java
import java.util.ArrayList;

class eraseDuplicates {
public static void main(String args[]) {
tryWith(“あんぱんまんのあんはつぶあん、こしあんのどちら?”);
tryWith(“しんせんえんさつのしょうぞうはだれ?”);
tryWith(“99さいのおいわいをあるいろを

元記事を表示

Spring Boot 2.5でdata.sqlを使ってデータ初期化を行う際の注意点

# 前提
先日、以下を使って簡単なアプリを作ろうとしました。

– Spring Boot 2.5
– JPA
– H2 Database
– data.sql

“`java:Item.java
package com.example.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstruct

元記事を表示

FileMaker ServerからJDBCでいろいろアクセスしてみる

[前回](https://qiita.com/megasys1968/items/25199d419a2274faace5)の記事を書いた以降に、わかったことを書きます。
なお、今回は可能ならSpringのJDBC Template、必要に応じて生のJDBCを、JDBCドライバも前回拡張したものではなく素のドライバを使用します。

## オブジェクトフィールドの読み書き

前回の調査で漏れてましたがオブジェクトフィールドを実際に読み書きしてみたら、うまく行かず諦めてました。

* JDBCドライバのPreparedStatementのgetBlob/setBlob等のメソッドを呼び出すと例外が発生し、”This method is not yet implemented.”と言われる。
* [ODBCとJDBCガイド](https://fmhelp.filemaker.com/docs/edition/ja/fm_odbc_jdbc_guide.pdf)に「CLOB、ARRAY および REF データ型を含む列の更新」は「FileMaker でサポートされません。」との記述を見て「でき

元記事を表示

Spring BootとApacheをAJPで接続する(secretRequired対応版)

ちょっと古いサイトを見て設定したらTomcatを9.0.34で追加されたSecretに
手順が対応していなくて起動しなかったのでメモ。

“`
Caused by: java.lang.IllegalArgumentException: The AJP Connector is configured with secretRequired=”true” but the secret attribute is either null or “”. This combination is not valid.
“`

secretRequiredはデフォルトtrueになっているが、今回Apacheとはlocalhost通信するので`setSecretRequired(false)`してsecretを使わない設定に変えると起動するようになる。

“`java
@Bean
public WebServerFactoryCustomizer servletContainer() {
Connector connector

元記事を表示

MacOSのProcessingでP3Dを使いたい!

# きっかけ
Processingで、以下のように書いた

“`java
void setup() {
size(600, 600, P3D);
}

void draw() {
background(255, 0, 0);
}
“`

そしたら、こんな感じの謎のwarningを吐かれ、正常に動作しなかった
(ちなみに自分のwarningメッセージをメモしてなかったので、同じ状況である他の人のメッセージを拝借した)

“`
WARNING: NSWindow drag regions should only be invalidated on the Main Thread! This will throw an exception in the future. Called from (
0 AppKit 0x00007fff3105d2e3 -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisab

元記事を表示

Java PDFでビューアプレファレンス(ViewerPreference)の設定

はじめに

ビューアプレファレンスとは、利用者がPDFファイルを閲覧する時に、自分の好みによって画面をどう表示させるかについては、様々なビューア表示設定できる機能です。例えば、タイトルを非表示にしたり、ウィンドウに合わせたりすることで、気持ちがよくなるでしょう。さあ、今回はSpire.PDF for Javaを利用してPDFでビューア表示設定を紹介していきたいと思います。

Spire.PDF for Javaとは?

Spire.PDF for Javaは、開発者がJavaプラットホームでPDFの文書ファイルを迅速かつ高品質でmodule-info.javaの書き方

#module-info.javaの書き方

##問題点と解決策
モジュールの名前に、パッケージと同じ(またはほぼ同じ)名前を付けた例が散見された。
間違いではないが非常に紛らわしく混乱した。
どこにどのレベルの名称を書くのか、構文レベルで事前把握しておくが吉。

“`x:ModuleDeclaration
{Annotation} [open] module Identifier {. Identifier} { {ModuleDirective} }
“`

“`x:ModuleDirective
requires {RequiresModifier} ModuleName ;
exports PackageName [to ModuleName {, ModuleName}] ;
opens PackageName [to ModuleName {, ModuleName}] ;
uses TypeName ;
provides TypeName with TypeName {, TypeName} ;
“`

“`x:RequiresModifier
(one of)

元記事を表示

Java 概要

#学習の目標
プログラミング言語のJavaの学習をします。学習の備忘録としてQiitaを使ってアウトプットしていきます。
まず、Javaの概要を学習します。

#目次
* Javaとは
* Javaの特長
* Javaの種類

#Javaとは
Javaとは、1995年に米国のサンマイクロシステムズ社(現オラクル社)がC++をベースとして開発したプラットフォーム非依存のオブジェクト指向のプログラミング言語です。
Javaは、プログラミン言語ランキングで常に上位になっているプログラミング言語で、多くの有名企業がJavaを利用したWebアプリケーションを構築しています。

#Javaの特長
プログラミング言語としてのJavaの特長を3つ説明します。

###コンパイル言語
プログラミング言語は大きく__「コンパイル言語」「スクリプト言語」__の2つに分類されます。
コンパイル言語は、予めコンパイラによってコンパイル(人間が描いたソースコードを機会が読み取ることができるように変換する作業)を行ってからプログラムを実行するものです。
それに対し、スクリプト言語は、事前にコンパイルしておくのではな

元記事を表示

Java Excel文書に画像を挿入・抽出

はじめに

Excelに画像や図形を挿入することで、エクセル文書をよりビジュアル化させることができます。今回はSpire.XLS for Javaを活用してExcel文書に画像を挿入・抽出する方法を紹介しています。この記事の案内を通して、少しでもお役に立てたのであればと思いますね。閑話休題、始めましょう!

Spire.XLS for Javaとは?

Spire.XLS for Javaは、開発者がJavaプラットホームでExcelの文書ファイルを迅速かつ高品質でgRPC(Java)でヘッダを使って情報を連携する方法

諸事情でgRPCのヘッダを使って任意の値を連携したいので、連携方法を調べてみました。

# 結論!?

`ClientInterceptor`と`ServerInterceptor`を利用すれば実現できる!けどサーバ側はちょっと一工夫する必要がありそう。

# やりたいことは・・・

ざっくりだが・・やりたいことを絵にしてみると・・・こんな感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117313/a1859c48-be74-98cf-03e6-a8dac071be3f.png)

# Spring Bootで検証APを作ってみる

## 変更履歴

**2021/10/14:**
ヘッダ情報をスレッドローカル変数で保持する実装はやめ、リクエストオブジェクトをキーにキャッシュするような実装に変更。理由は、`ServerCall.Listener`の全てのメソッド(コールバックメソッド)が同一スレッドで実行される保証がない模様のため。

## 検証コード

* https://g

元記事を表示

各ベンダーごとの Java17 バージョン情報

各ベンダーごとに、`java –version` で表示されるバージョン情報をまとめました。

|ベンダー|名称|バージョン情報|
|:—|:—|:—|
|Amazon|Corretto|OpenJDK 64-Bit Server VM Corretto-17.0.0.35.1
(build 17+35-LTS, mixed mode, sharing)|
|BellSoft|LibericaJDK|OpenJDK 64-Bit Server VM
(build 17+35-LTS, mixed mode, sharing)|
|Eclipse Foundation|Temurin|OpenJDK 64-Bit Server VM Temurin-17+35
(build 17+35, mixed mode, sharing)|
|Microsoft|Microsoft Build of OpenJDK|OpenJDK 64-Bit Server VM Microsoft-26987
(build 17+35, mixed mode, sh

元記事を表示

[Java]条件分岐について(初学者)

# はじめに
本記事では、Javaの繰り返し分岐について記述します。
本日よりJavaの学習を始めました。

# if文
## 例文(ifのみ)

“`java
int i = 100;
if (i == 100){
System.out.println(“True”);
}

// 「True」と表示されます。
“`

### 参考
#### データ型
以下参考サイトになります。
[基本のデータ型](https://www.javadrive.jp/start/var/index4.html)

|データ型|値|
|-|-|
|int|整数|
|boolean|true or false|
|double|小数点付きの数字|
|String|文字列|

#### System.out.println
以下参照ください。
[System.out.printlnとは](https://www.javadrive.jp/start/const/index8.html)
> System.out.println は標準出力へ引数に指定した値を出力する

## if+else文
もし、

元記事を表示

Processingを扱う

#はじめに
この記事ではJavaベースの言語、Processingを扱っていきます。Processingはデジタルアートを作成するための言語のようです。[Processingホームページ](https://processing.org/download)よりダウンロード可能です。
#基本
Javaなのでvoidを使用するべきですが、まずは基本ということで基本の書き方を紹介します。
##スケッチブックサイズの指定
サイズの指定はsize()を使用します。これを書くことでそのスケッチブックに描画することができます。
書き方:size(x,y);
Javaですから、命令分の終わりには;(セミコロン)をつけましょう。

>
“`java
size(500,500);
“`

##四角形を描画する
四角形を描画するにはrect()を使用します。
書き方:rect(x,y,width,height);

>
“`java
size(500,500);
rect(0,0,100,100);
“`

![スクリーンショット 2021-10-11 18.29.33.png](https://qi

元記事を表示

アノテーションの基礎知識(Java)

## はじめに

SpringやDomaを使っているとよく出てくるアノテーションですが、正確な役割などは
あまり理解せず、フィーリングで使ってきていたので基礎から立ち返りたいと思います。

## アノテーションとは?

`@Override`のように「`@` + 名前」のような形式で表現されるものを
`アノテーション`と呼びます。
これらをメソッドやクラスなどjavaのあらゆる機能に付けることで利用します。
アノテーションには以下のような役割があります。

**クラスやメソッドなどに対して補足的な情報を付け加えるためのもの。**

このように、あくまで補足的な情報を付け加えるためのものなので、アノテーションそれ自体に
なにか機能が含まれているわけではありません。
いわば、ソースコードのコメントのようなものです。
したがって、それだけでは処理的には何の意味もありません。

## アノテーションが必要な理由

それならば、どうしてアノテーションを付ける必要があるのでしょうか?
それはアノテーションと特定の機能を組み合わせることで、強力な機能を実現することができるからです。

– コンパイラ

元記事を表示

【UiPath】OrchestratorのAPIを使ってみる③~Javaから認証APIを叩いてみる~

# はじめに

前回まででOrchestrator APIの叩き方はわかったので、Javaから実行してみます。

## 余談

UiPath Orchestratorで月間スケジュールのようなものを出力したかったのですが、そういう機能がないんですよね。
(トリガーの画面で確認はできるが、レポート的に出力する機能がない)

かゆいところに手が届かないので、それを補完するためにJavaからAPI叩いて整形してレポート出力してみよう!というのが発端でした。

# 認証APIを叩いてみる

今回は認証APIを叩いて、Bearerトークンを取得するところまでを説明します。
JSONデータを作って、HttpClientでPOSTして、Bearerトークンを取得する、という流れになります。

## まずは投げるところまで

“`java:App.java
package jp.co.pmtech.iwata;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apac

元記事を表示

OTHERカテゴリの最新記事