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

JAVA関連のことを調べてみた2020年04月15日
目次

JavaプロジェクトをKotlinに書き換えるための初期設定

完全にJavaで記述されたAndroidプロジェクトにKotlinのファイルを追加するための初期設定手順をまとめます。

## appのbuild.gradle

“`
+ apply plugin: ‘kotlin-android’
+ apply plugin: ‘kotlin-android-extensions’

buildscript {
}

repositories {
+ mavenCentral()
}

dependencies {
implementation “org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version”
}

android {
}
“`

### 解説
プラグインを適用します。

“`
apply plugin: ‘kotlin-android-extensions’
apply plugin: ‘kotlin-android’
“`

repositoriesにmavenCentralを追加

“`
mavenCentral()
“`

ライブラリセットにKo

元記事を表示

【Java初心者】StringBuilderクラスとは ~文字列結合のお話~ ※課題アリ

こんにちは、あつぎです!

最近コマンドライン引数を使ってコンピュータとのやりとりを楽しんでおります。
(※病んでません)

今回は、コマンドライン引数を使って、
文字列を連結させてみたいと思います。
特にEclipse環境の人向けに解説してるので、同じく挫折してる人はこちらを見ましょう。

#■StringBuilderクラスを使わない連結方法(※注意点アリ)
まずコマンドライン引数がわからない人はこちらをどうぞ
→https://qiita.com/Fallstag_Atsugi/items/2666f4d3f86cb2577674

コマンドライン引数を使って文字列連結?そんなの簡単じゃん!
と思い、サクッと作るとこうなります。

“`java
public static void main(String[] args) {
//コマンドライン引数を3つ渡す 例:とり 豚 からし
System.out.println(args[0] + args[1] + args[2]); //結果:とり豚からし
}
“`

これで連結されるそうなんですが、

元記事を表示

Mavenが使っているJavaのバージョンを確認する方法

– 環境
– CentOS Linux release 7.6.1810 (Core)
– Apache Maven 3.2.5

Mavenのバージョンも確認できるけど、Mavenが使っているJavaのバージョンも確認できる。
開発をしているといくつもバージョン違いのJavaを使っていたりして、MavenがどのJavaを使っているか確認したくなる。

“`bash
# 「mvn –version」でもOK
$ mvn -v
…省略…
Java version: 1.6.0_41, vendor: Sun Microsystems Inc.
…省略…
“`

参考 : [MavenでJavaのバージョンを設定する](https://www.codeflow.site/ja/article/maven-java-version)

元記事を表示

Java カレンダー 作り方 まとめ

#はじめに
Javaでカレンダーを作成してみました。
今年1年分のカレンダーが出力される仕様になっています。

プログラミング学習を初めて2ヶ月が過ぎ、このままだと心が折れそうなので細々と投稿を始めることにしました。
暖かい目で見てください。
今にも挫折しそうです、お願いします。

#目次
1.やりたかったコト
2.カレンダー作成コード
3.出力結果
4.補足

#やりたかったコト
・1年分のカレンダーの作成
・うるう年を見分けて2月の日数を調整
・文字フォーマットを3文字で統一(見やすくするため)
・toStringメソッドのオーバーライド

#カレンダー作成コード

“`java
import java.time.LocalDate;
import java.time.Month;
import java.time.Year;
public class Calendar_test {

/*************************
* フィールド
*************************/

//カレンダーマトリックス用の配列
private

元記事を表示

macOSにOpenJDKをインストールする

## OpenJDK 11.0.2の場合

1. [Archived OpenJDK General-Availability Releases](http://jdk.java.net/archive/)からダウンロードする。

“`shell
wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz
“`

1. `openjdk-11.0.2_osx-x64_bin.tar.gz`ファイルを`/Library/Java/JavaVirtualMachines/`に解凍する。

“`shell
sudo tar zxvf openjdk-11.0.2_osx-x64_bin.tar.gz -C /Library/Java/JavaVirtualMachines/
“`

1. ファイルの所有者/所有グループを変更する。

“`shell
sudo chown -R root:wheel /Libra

元記事を表示

プロジェクトをMavenでビルドできない時の対応方法

– 環境
– CentOS Linux release 7.6.1810 (Core)
– Apache Maven 3.2.5
– openjdk version “1.8.0_242”

# 事象1 : Unknown host static.appfuse.org

“`bash
$ mvn install -Dmaven.test.skip=true
…省略…
[ERROR] Failed to execute goal on project … Could not transfer artifact jsonic:jsonic:pom:1.2.0 from/to appfuse (http://static.appfuse.org/repository): static.appfuse.org: Name or service not known: Unknown host static.appfuse.org: Name or service not known -> [Help 1]
[ERROR]
[ERROR] To see th

元記事を表示

JerseyでHttpServletRequestなどのコンテキスト情報を得る

[Jersey+SpringFrameworkでRESTFulAPIを実装](https://qiita.com/kasa_le/items/2714f4deac718715f2d2)していて、以下の情報が必要になりました。

– HttpServletRequest
– HttpServletResponse

その方法を調べたので覚え書き。

# 環境など

|ツールなど|バージョンなど|
|:–|:–|
| MacbookPro |macOS Mojave 10.14.5|
|IntelliJ IDEA |Ultimate 2019.3.3|
|Java |AdoptOpenJDK 11|
|apache maven |3.6.3|
|Jersey|2.30.1|
|JUnit|5.6.0|
|Tomcat|apache-tomcat-8.5.51|
|Postman|7.19.1|
|Spring Framework|5.2.4-RELEASE|

# 取得方法

`@Context`をつけてメンバー変数に宣言するだけ。

“`java
@Service
@Path(“/

元記事を表示

[Android] レビューダイアログ表示

# レビューダイアログ表示
## ライブラリ導入

**1. implementation ‘com.vorlonsoft:androidrate:1.2.5-SNAPSHOT’**
sshot_1.png

**2. Gradle Syncしてライブラリを入れる**
sshot_2.png

## ライブラリ使う

**1. 使いたいクラスでインポートする**

コード
“`import com.vorlonsoft.android.ra

元記事を表示

フィールドに改行文字を含むCSVのパース

# 手段のために目的を探す。
ある時、図書館で出会った「ふつうのコンパイラを作ってみよう」という本の影響で、javaCCを使ったパーサを作ってみたいなぁ、と思っていたところ、

「jp1baseのイベントDBをダンプしたCSVファイルって、ダブルクォートで囲まれたフィールドに改行やカンマが含まれているので、Excelに貼ったりするのが大変だよなぁ。」

という事で、早速パーサを作ってみることにしました。

# やること
フィールドデータとしてカンマや改行を含むCSVデータをExcelで読み込み易い形に変換して標準出力する。

# やり方
1. 大まかな流れ
1. CSVデータをパースして配列データにする。
1. 1行分のデータを読み込んだら整形して出力する。
1. 上記をjavaで実現する。

1. CSVデータの定義
1. カンマ区切りのデータ
1. ダブルクォーテーション(“)で囲まれたフィールドにはカンマや改行を含む。
1. また、ダブルクォーテーションで囲まれたフィールド内でダブルクォーテーションそのものを表す場合は、バックスラッシ

元記事を表示

parquet-tools が java.lang.ExceptionInInitializerError するので java8 で動くようにした話

# 概要

parquetの確認用に `parquet-tools` をインストールしたのですが、今どきの環境だと java8 より高いバージョンが入ってしまって動かないと思うので、 java8 をいれて使えるようにしました。

# 事象

とりあえずどんなインストールしたらエラー出るのか

“`
% brew install parquet-tools
“`

“`
% parquet-tools meta ファイルパス
java.lang.ExceptionInInitializerError
“`

軽くググると java8 じゃないと動かないよとのこと

“`
% java -version
openjdk version “14” 2020-03-17
OpenJDK Runtime Environment (build 14+36-1461)
OpenJDK 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)
“`

# 対応

java8 をインストールして、実行時にjavaのバージョンを切り替える

元記事を表示

TableLayoutでボタンを画面いっぱいに表示する

#横幅を画面いっぱいに広げたい
↓このボタンを横幅いっぱいに広げたい。
![table1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566570/382ee5d6-7143-6b18-358e-0778030ed83d.png)

元となるコード

“`activity_main.xml

元記事を表示

[Java] Arrays.sort よりも速いsortを書く

`Java`で競技プログラミングをしているのですが, `Java`の標準ライブラリに用意されている primitive type の配列をソートを行う関数`Arrays.sort`の最悪計算量が $O(N^2)$ だと聞き, さすがにそれはまずいということで自前のソート関数を実装しました ( ただし, primitive でない場合は最悪 $O(N\log N)$ のMerge Sort が使われているようです. 安定ソートであることしか保証されていないのでこれも変更される可能性があります ) .

( 追記 2020/04/14 15:27 )
Java 14 では以下の通り最悪計算量が $O(N\log N)$ となるよう修正されているようです. ただ, 競プロで Java 14 が使えるようになるにはまだまだ時間がかかりそうなので, 自作ソートは持っていても良さそうです.
[Java 14のArrays.sort(int[])] (https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/Arr

元記事を表示

【Java初心者】コマンドライン引数って…わからんなぁ~

>コマンドラインで~,コマンドラインの引数の数が~,

みたいな課題出されても、『意味わからん!』となるあつぎです。
なのでググって調べてみた!Let’s Google it!

#Q.1 コマンドライン引数とは?
>結論:プログラムを起動した際に一番最初に渡される情報

いちいちコードを書かなくてもファイルの情報を勝手に持ってきてくれるから便利との評判です。

ざっくり説明すると、コマンドライン引数に最も多く設定されるのはファイルの情報で、別に文字や数値でもOKだそうです。設定するときに必要なデータが入っているフォルダのパスを指定してあげればフォルダの中身の情報が取得できるそう。

#Q.2 コマンドライン引数の情報はどこに渡されるの?
>結論: mainメソッドの引数部分

“`java
public class sample{
public static void main(String[] args){
} //String[] argsの部分
}
“`

javaの仮想マシン(VM)

元記事を表示

【Java初心者】Javaにおける円周率【Mathクラス】 ~Mathクラスってなんぞ?~

>円周率はMathクラスのPI使ってね?

こういわれても頭の中は『?』なあつぎです?

なのでGoogle先生お願いします。なんでもしますかr

#◆そもそもMathクラスとは

Math クラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。はい、なんのこっちゃですよね。

なので、[こんな種類があるよーって参考記事があったので記載](https://qiita.com/maru2213/items/b3b5b66cd2d4931dd989)させていただきます?‍♂️

#【結論:円周率はこれでOK】
この記事読んでる方は、さっさと答えを知りたい!という人だと思うので、さっさと結論から書きます。

“`java
public class sample {

public static void main(String[] args) {
double x = Math.PI; //Javaにおける円周率
System.out.println(x);
}
}

“`

>※ちょい補

元記事を表示

【Java初心者】文字列から数値への変換 ~IntegerクラスのparseIntメソッドとは何ぞや?~

こんにちは、あつぎです!
※円の面積の問題の追記アリ

>IntegerクラスのparseIntメソッドとは?

と質問され、「未経験にわかるかいっ!」と思ったのでメモしておきます。
これをスパッと答えられる経験者は回れ右してお帰り下さい。

#◆文字列から数値への変換
数値形式の文字列を数値そのものに変換する方法があるそうです。
その1つが、『parsexxxメソッドを使用する』とのこと。

#◆parsexxxメソッドを使用する
この方法は、各ラッパークラスで用意されているparsexxxメソッドを使う方法です。xxxの部分はラッパークラス毎に異なりそれぞれ次のようなメソッドが用意されています。

※[ラッパークラスの説明はこちらから](https://qiita.com/Fallstag_Atsugi/items/1ebb7cce04305f63f082)

“`
Byteクラス:
static byte parseByte(String s)

Shortクラス:
static short parseShort(String s)

Integerクラス:
static i

元記事を表示

【Java初心者】ラッパークラスとはなんぞ? ~Javaでこれは知っておこう~

ラッパークラスとはなんぞやと思い、まとめてみました。

#◆ラッパークラスとは?
[javaでは基本データ型として、byte, short, long, integer, float, char, double, booleanが規定](https://qiita.com/Fallstag_Atsugi/items/f9e5a07ddad33133613a)されています。これらをプリミティブ型というそうです。

プリミティブ型はオブジェクトではないので、それ自身のメソッドを持っていません。

ところがオブジェクトを使ってゆくと、これらの基本型を操作しなければならない局面が出てきます。そのためプリミティブ型をオブジェクトとして操作するクラスが各種定義されています。 これらはプリミティブ型を包み込むという意味でラッパークラスといいます。

あんまりわかりませんね。情報系の学部卒ならスッと頭に入るのでしょうか?

![rapper.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505304/886e24d9-

元記事を表示

JavaでLifeGameを作ったので置いとく。

#はじめに
LifeGameのシミュレーションソフトを作ってみたので記念にソースコードを貼っときます。Javaを書くのは初めてだったのであんまり綺麗ではないと思います()特に例外処理が良くなさそう…アドバイス等ありましたらコメントお願いします。

#動作様子

元記事を表示

EclipseにてjavaFXの導入(2020-4月)

## はじめに

javaSEにjavaFXが同梱されないようになり、既存のやり方ではうまくいかないことがあるようで、導入に躓いたので後の参考になればと思い。 初心者なのでお手柔らかに。

## 環境

– macOS Catalina
– Eclipse (2020-03)
– javaSE 11

## 導入

### e(fx)clipseをインストール

1 Eclipseを開き、画面上部の”ヘルプ”から”新規ソフトウェアのインストール”に進む。

2 “追加”を選択

3 名前欄に

> Oxygen

ロケーションに

> http://download.eclipse.org/releases/oxygen

を入力。

4 e(fx)clipseを選択しインストール。

### javaFX SDKをダウンロード

1 [javaFXのサイト](https://openjfx.io)を開く

2 “DOWNLOAD”を押し、「JavaFX Mac OS X SDK」をダウンロード。(おそらくWindowsの場合はWindowsを選ぶ)

### プロジェクトを作成

元記事を表示

Spring bootにJOOQを導入時、Liquibase周りでエラーとなるため対処した話

# 背景
Spring bootを勉強しています。

– IDE:STS4
– 各種バージョン:Java13, Spring boot2, JOOQ 3.13.1

です。

## Spring bootの勉強中にSQLをメソッドベースで書きたくなった
SpringデフォルトのJPAで簡単なDBアクセスをしていたものの、
テーブルJOINする時に、あまりイケテナイ気がしてきた。。。
過去に仕事でメソッドベースでSELECT文を書いていたことを思い出し、
似たようなライブラリを探した。

**JOOQ**なるクエリービルダー型のORMなるものがあるのか!
と気づいたので導入。

# 導入方法
割愛します。
Postgresを利用しつつ、対象データベースのテーブルに対するテーブル関連ソースコードの自動生成まではあまり困らずにいけました。

# エラー発生!
コンパイルエラーもないようなので、WEBアプリケーションを起動しようとすると下記エラーが発生しました。

“`
org.springframework.beans.factory.BeanCreationException: Err

元記事を表示

Test source folder ‘src/test/java’ in project ‘プロジェクト’ must have an output folder that is not also used for main sourcesとなった時の対応方法

– 環境
– CentOS Linux release 7.6.1810 (Core)
– Eclipse Version: 2019-03 (4.11.0)

# 事象 : EclipseのプロジェクトでMavenの`Update Project…`をしたら怒られた

“`text
Test source folder ‘src/test/java’ in project ‘プロジェクト’ must have an output folder that is not also used for main sources
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159761/e8145ccf-a58a-ecb3-b9cf-17de27238a97.png)

# 原因 : `.classpath` に設定されている `path`のディレクトリがないから
– 参考
– [eclipse – How to fix the error &quo

元記事を表示

OTHERカテゴリの最新記事