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

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

pom.xmlに定義されていないjarでMissing artifactとなった時の対応方法

– 環境
– CentOS Linux release 7.6.1810 (Core)
– Apache Maven 3.2.5
– (Maven用)Java1.8.0_242 (プロジェクト用)Java1.6.0_41

# 事象 : Eclipseでプロジェクトを選択 > [Maven] > [Update Project…]したら怒られた

“`log:[Problems]タブのエラー
Missing artifact javax.resource:connector:jar:1.0
Missing artifact javax.transaction:jta:jar:1.0.1B
“`

プロジェクトのpom.xmlをグレップしてもそんな定義はない・・・はて?

“`bash
$ grep -rn connector –include=pom.xml
$ grep -rn jta –include=pom.xml
$
“`

## 原因 : pom.xml定義されているjarの依存関係にあるjarがないから

### 試行錯誤
Eclip

元記事を表示

【Java】多態性を勉強したので使い方やメリットをまとめてみる

#はじめに
スキルアップのため、これからは勉強したことをQiitaに投稿していきます。
今回はJavaの多態性についてです。
JavaもQiitaも超がつく初学者のため、間違いがあるかもしれません。その時は教えてくださると助かります。
######使用言語とOS
この記事ではWindowsにインストールしたJava11.0.6を使っています。

#多態性とは
オブジェクトを大まかにとらえることで、開発をしやすくする機能のことです。
例えば、「バラ」「ひまわり」「チューリップ」は**細かく言うと**それぞれの育て方は異なるものの、水をあげれば花が咲く点は共通しています。
なので、私たちはこの3種類を「花」という**大まかなとらえ方**をしていて、「花」だとわかればとりあえず水をやるわけです。このとらえ方をプログラムでもしようっていうのが**多態性**です。

#プログラム内で多態性を利用する
特別な書き方はなく、代入の書き方をすればOKです。
######代入ってこんなやつ
“`Java:Assignment.java
int num1 = 100;
int num2 = 200;
n

元記事を表示

【Java】FizzBuzzを出力するときに気をつけるべきこと

#FizzBuzzを出力するときに気をつけるべきこと#
##FizzBuzz問題とは##
最初のプレイヤーは「1」、次のプレイヤーは前のプレイヤーの次の数字を言うゲーム

ただし・・・

– 3で割り切れる場合は「Fizz」
– 5で割り切れる場合は「Buzz」
– 両方(すなわち15)で割り切れる場合は「Fizz Buzz」

というルールがあります

FizzBuzz問題は比較的かんたんなプログラムで出力できることから、
初心者プログラマが乗り越えるべき壁となっています
##ひな型になるfor文を書きます##
“`
for(int i = 1;i < 100;i++){ System.out.println(i); } ``` ##上記の意味は?## - 整数型(Integer)を宣言 - 添字「i」を1として初期化 - iを99(100含まず)までインクリメント(増分)し、 - インクリメントされた添字iを改行付きで出力する ``` 1 2 3 (中略) 97 98 99 ``` 99まで出力されました ##上のコードに手を加える## 文字列「はFizzです」を

元記事を表示

Socket通信(Java) 初めて実務で実装した感想

Socket通信を初めて実務で実装する機会があったので、感想と使用技術をメモしておきます。過去に独習していた時には、ぴんとこなかったのですが、さすがにデータ仕様書をみて実装すると体感することができました。

##1. Socket通信概要
サーバー・ソケットとクライアント・ソケットの2種類あるようですが、今回は、クライアント・ソケットのみを使用しました。
感想は、JavaのSocket Apiがあるけれど、結局、バイトストリームのやり取りか・・・と言うものでした。
データ仕様書にも、「データA:xxxバイトから4バイト」みたいな記載でしたし。

下記記事群を参考にさせていただきました。
@Hyman1993さん
[Java通信APIのまとめ(一)Socketの使い方](https://qiita.com/Hyman1993/items/a3aaabbb2e83580d68d2)
@Ginさん
[TCPのストリーム通信の切れ目・区切りについて](https://qiita.com/Gin/items/620f4a7bec246004ee89)

##2. バイトオーダー
設計書に「デー

元記事を表示

[Android]ディープリンクへの対応手順

# ディープリンクへの対応手順

## 以下の手順となります。

**マニフェストを設定 1**

“`kotlin






“`

applink_1.</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>HTML</div>
<div class='tag-cloud-link'>Android</div>
<div class='tag-cloud-link'>Kotlin</div>
<div class='tag-cloud-link'>AndroidStudio</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/myatthinkyu/items/872a2f4713befdffafcf'>元記事を表示</a></div>
<h3 id=LocalDateTimeクラスとは?【Java初心者】~日時クラス~

パパっと済ませましょう。
日時クラスについてまとめてみました☺

#■LocalDateTimeクラスとは?
>Java8から導入された新しいAPI。
【特徴】
・タイムゾーンのない日時。
・内部にLocalDateとLocalTimeのインスタンスを持っている。
・例:2015-12-15T23:30:59.999

コードで書くとこんな感じでできる。

“`java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class test01 {

public static void main(String[] args) {

//現在日時を生成;
LocalDateTime d = LocalDateTime.now();
System.out.println(“現在日時:” + d); //現在日時:2020-04-15T15:57:33.884

//日付を生成
LocalDate

元記事を表示

【Java】穴掘り法で迷路作ってみました♪

初投稿です!!
#こんな迷路ができました。

![実行結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527632/229b9d12-f96e-6b47-2cfb-b544fd1f2af0.png)

#作ろうと思ったきっかけ
以前にHTML5とJSで、棒倒し法を使った迷路ゲームをつくって文化祭に出展したことがありました。
しかし、棒倒し法で作った迷路は解がとても単純になってしまうため、解が複雑な穴掘り法でやってみたいと思ったからです。
#穴掘り法って?
**■すごくざっくり言うと穴掘り法はこんなアルゴリズム** (もしかしたら間違っているかも:sweat_drops:)

縦、横共に大きさが5以上で奇数の大きさのマップを作成する。
すべて壁で埋める
マップの端っこ以外で、X座標、Y座標が共に奇数の場所を無作為に選び、穴を開ける。
★端っこ以外で、X,Y座標が奇数で(今回は左上端を0,0とする)、まだ壁が残っているところがあるか確かめる
    **あったら:**マップの端っこ以外で、X座標、Y座

元記事を表示

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 {

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

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

元記事を表示

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
– Java1.8.0_242 と Java1.6.0_41

# 事象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 t

元記事を表示

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. 使いたいクラスでインポートする**

“`kotlin

import com.vorlonsoft.androi

元記事を表示

フィールドに改行文字を含む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)

元記事を表示

OTHERカテゴリの最新記事