CentOS7でJava環境(OpenJDK)を構築する

やりたいこと

CentOS7にJava環境を構築する。OralceJavaではなく、OpenJDKを利用する場合の手順を記載する。

注意点

java-1.8.0-openjdk.x86_64をインストールすることで、JDK環境が構築できるように思えるが(xxxjdkってjdkって名乗っている)、このパッケージはJavaSE同等のもの。よって、java-1.8.0-openjdk.x86_64をインストールしてもjavacコマンドが使えない。

java-1.8.0-openjdk.x86_64だけでは以下のようなことが起こる。

$ java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-b15)
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)

$ javac
-bash: javac: コマンドが見つかりません
$ mvn package
...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project app: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

JDK相当のパッケージはjava-1.8.0-openjdk-devel。これをインストールすることで、javacコマンドも利用可能になる。

OpneJDK環境構築

パッケージインストール

# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

環境変数設定

$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
$ export PATH=$PATH:$JAVA_HOME/bin

動作確認

$ java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-b15)
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)

$ javac -version
javac 1.8.0_111

IntelliJ IDEA TomcatでWebアプリケーションを起動する

IntelliJ IDEAでTomcatサーバを実行しJavaアプリケーションを実行する

IntelliJ IDEAでJava Webアプリケーションを開発する際、APサーバとしてTomcatを利用する方法を記載する。

環境

Tomcatのインストール

Tomcatbrewを利用してインストールを行う。

$ brew install tomcat

IntelliJ IDEAのRun/Debug設定

  • Run/Debug Configurations > Add New Configuration > Tomcat Server > Local を選択 f:id:gyamin:20161024000410p:plain

  • Serverタブ ConfigureからbrewでインストールしたTomcatをサーバとして設定する f:id:gyamin:20161024000413p:plain

  • Deploymentタブ Add から Artifact... を選択し Pom.xmlで設定されたBuildを選択する f:id:gyamin:20161024000415p:plain

  • 設定したRun/Debug Configurationを実行することでアプリケーションが起動する

hot swap設定

hot swap(hot deploy)は、APサーバを再起動することなくコードの変更をAPサーバに反映させること。

hot swapの利用

上記の設定後は、DebugモードでTomcatを起動して、ファイルを編集後、Updateをすることで反映される。

  • Javaファイルを編集する コードを変更する

  • Update ボタンを押す(command + F10) これがよくわかならなかった。勝手に反映されると思っていたが、Updateをしないといけない。(自動アップデート設定もできるのだが、InteliJ IDEAのファイル編集は保存。っていうアクションがないので、自動を設定しても、1度APサーバの動作後に反映される形になる。どうも反映されるタイミングがしっくりこないので、自分でUpdateする方がわかりやすかった。)

ちなみに

いろいろと設定を触っているうちにわかったこと。結構直感的にわからない。。。英語の理解力がないからかも。

Preferences > Build, Execution, Deployment > Debugger > HotSwap の設定

Reload classes after compilation をAlwaysにした場合、Updateをしなくても、APサーバが動作を行うと、変更が通知される。ただし、APサーバが1度でも動作しないと反映がされないので、1アクセス反映が遅れてしまった。

Run/Debug ConfigurationのOn frame deactivationの設定

こちらは、IntelliJ IDEAから別のアプリケーションにカレントのアプリケーションが切り替わった場合(表現が難しいが、ようは別のアプリケーションをアクティブにした場合)の動作の設定。Update classes and resourcesに設定して、コードを編集後、例えばブラウザなどにフォーカスを移動した場合、hot swapが実行された。

育休期間中の収入について

はじめに

「育児休暇を取得しよう。」と思って、何も後先考えずに取得をすると、当たり前ですけど、生活に困ってしまいます。 私のように、妻が専業主婦で、収入を得ているのが私だけ。っていう場合には、収入が無くなることになるので、安易に休みだけをとってしまうと、生活ができない。ってことになりかねません。

育児給付金とは

育児休暇を取得するとなると、仕事に行かないわけなので、当然お給料はもらえないことが普通だと思います。私の会社も、当然のように給料は出ません。育休でも給料を出してくれる。って会社があればいいのでしょうが、普通に考えて、仕事していないんだから、給料は出さないでしょう。

だからと言って、全く収入が無くなるかというと、そうではありません。一定の要件を満たす必要がありますが、雇用保険から育児給付金を受け取ることができます。私も、この制度があるから、育休を取ることができたわけです。収入が全く無くなるのなら、専業主婦を持つ男性の育児休暇など、よほどお金に余裕のある人しか取れなくなってしまいますもんね。

私は今までこれといった病気もせず、失業手当をもらったこともなく、払ってばっかりだったので、ようやく少しは取り戻すことができたような気がしています。税金は取られっぱなしのように思いますが。

育児給付金は少しずつ給付の条件が良くなってきているようで、以前は標準報酬月額の50%が給付対象額だったのが、最近は、最初の6ヶ月間は67%に改善されました。(6ヶ月を越えると50%になります。)私は、2016年末まで約4ヶ月間育休を取る予定ですので、給付の対象期間中は67%の給付を受けれます。 ただし、必ずしも標準報酬月額の67%を受給できるわけではありません。詳しくは、お上が出している、分かりにくい資料を探してもらうのが確実ですが、上限が設けられています。上限の額は約285,000円で、どんなに高給取りの人でも、この額以上はもらうことができません。 ですので、給料が高額で、その給料に応じた生活をしている家庭が育休を取った場合、給付金では全くそれまでの生活が維持できない。赤字になってしまう。ということになります。私の場合は、それほど贅沢な暮らしもしていないので、給付金で赤字にならずにやっていけるのでは?と思っています。

実質は67%ではない?

結構大事なことなのですが、育休期間中は社会保険料(厚生年金、健康保険、雇用保険)が免除されます。社会保険料の出費が減るので、その分は手取りが増えることになります。 さらに、細かいことでいうと、標準月額は交通費を含んだものですので、仮に給料が200,000円で交通費が50,000円だった人の場合、200,000円の67%ではなくて、250,000円の67%が支給されて、当然仕事に行かないので、交通費はかからない(定期とかは計画的に購入しとくことが大事ですね)ので、なんというか、給付は休み前の67%でけど、手元に残るお金は、67%よりは増える。ということです。

ただし、住民税や所得税は免除されないので、これまで通り、支払う必要があります。

その他の収入

育休期間中のメインの収入は給付金に頼ることになるのですが、それ以外にも収入があります。

児童手当

まずは児童手当ですね。3歳未満は月額15,000円をもらうことができます。出生届を出すのと同時に申請をするのがいいです。申請した月の翌月から対象になるので、申請が遅くなると、その分貰える額が減ってしまいます。私の場合は、8月に生まれて8月中に申請をしたので、9月分から貰えるはずです。まだ振込みが確認できていませんが、10月11日には振り込まれるはず。(って今日ですね。)

私の住む市の場合、出生届を出しに行ったら、出生届の受付をしている間に、医療費の補助の申請と児童手当の申請をするように案内をしてくれました。 児童手当の申請書などは、事前にダウンロードして印刷し、必要事項を記載して持って行ったのですが、だいぶ珍しいパターンのようで「どこでこの申請書を入手されましたか?」って聞かれてしまいました。お宅様のホームページからなんですけど。。。あと、この申請書にも個人番号が必要になっていて、びっくりしました。

私は引越しをしたばかりだったので、2016年1月1日に居住していた市が発行する課税証明書が必要でした。当日は持っていなかったのですが、児童手当の申請は受け付けてくれました。課税証明書は後日提出でOKとのことでしたが、提出が遅くなると、9月分の児童手当の振込みが、10月ではなくて、2月にずれることになるとのことでした。児童手当は10月、2月、6月と年3回、4ヶ月分がまとめて振り込まれるのですが、私の場合9月から対象になったので、すぐに納税証明書を出せば、10月に15,000円もらえるが、そうでなければ2月に5ヶ月分が振り込まれることになるということです。

出産祝い

私の会社はありがたいことに出産のお祝いを出してくれます。それも結構な金額です。児童手当の10倍です。あと、両親や親戚などからお祝いをいただきました。また書こうと思いますが、思った以上に赤ちゃんには出費がかさみます。いただいたお祝いは、かなり助かるもので、本当に感謝です。

育休取得に向けて

はじめに

私は、育児休暇を取得して子育てをしている男性です。
簡単に私の紹介をすると、年齢は残念ながら、30も半ばで、大阪でSEの仕事をしています。 家族は、妻と生まれた長女の3人暮らしです。

2016年の8月に長女が生まれました。長女が生まれてからすぐに育休に入って、ようやくバタバタが落ち着いてもきたので、男性が育休を取得するってことがどんな感じなのか、紹介できればと思います。

「育休を取得します」宣言

妊娠がわかって、3ヶ月くらいした2015年の3月頃だったと思います。妊娠5ヶ月目くらいですかね。会社の上司に妻が妊娠したことと、育休を取得したいということを伝えました。

難しいのが伝えるタイミング。基本的には、安定期に入ってから伝えた方が良いと思います。安定期に入る前は、残念なことですが、流産などの可能性もありますし、まだ確実でもないので。逆に遅すぎると、引き継ぎや取引先への連絡などで、迷惑をかけることになってしまいます。あとは、上司のご機嫌ですかね。機嫌がいい時を見計らうのも、サラリーマンの生きる術かと思います。

私の場合、「おめでとうございます。」「総務担当と上に伝えておきます。」って感じで、びっくりはしていましたが、割とあっさりでした。このあたりは、だいぶ会社や上司の性格によっていろいろだと思います。

このご時世、「育休なんて、とんでもない!バカモン。」っていうような人も少ないのではないかと思いますが、そんなこともないのでしょうか。法律で認められているお休みですよ。そんなこと言う会社なら、別の会社を探した方がいいんじゃないかと思うのは、会社依存を嫌うSEの発想なんでしょうか。

当たり前ではありますが、育休取得をするにあたっては、どのくらいの期間取得するのか、収入をどうするのかなど、考えておくことがいろいろとあります。そちらについては、また次回以降に記事にしたいと思います。

jruby+jrubyfxで作成したアプリケーションをパッケージ化する→断念

やりたいこと

jruby+javafxで作成した本当に簡単なアプリケーションをMacWindowsから簡単に実行できるように.appファイル、.exeファイルにパッケージ化したい。

環境

ruby環境はrbenvで環境構築

$ rbenv versions
  system
  2.0.0-p353
* jruby-1.7.10 (set by /Users/HOGE/Develop/IdeWorkspace/NetBeans7.4/picture-arrangement/.ruby-version)
  system

$ rbenv gemset active
.gems global

Rawerのインストール

$ gem install rawr --source http://gems.neurogami.com
Fetching: xml-simple-1.1.3.gem (100%)
Successfully installed xml-simple-1.1.3
Fetching: hoe-3.12.0.gem (100%)
Successfully installed hoe-3.12.0
Fetching: s4t-utils-1.0.4.gem (100%)
Successfully installed s4t-utils-1.0.4
Fetching: builder-3.2.2.gem (100%)
Successfully installed builder-3.2.2
Fetching: user-choices-1.1.6.1.gem (100%)
Successfully installed user-choices-1.1.6.1
Fetching: rubyzip-1.1.4.gem (100%)
Successfully installed rubyzip-1.1.4
Fetching: rawr-1.7.0.gem (100%)
Successfully installed rawr-1.7.0
7 gems installed

Rawrセットアップ

$ rawr install
Running in jruby 1.7.10 (1.9.3p392) [darwin-x86_64]
Create rawr files using {:wordy=>false,
 :class=>"org.monkeybars.rawr.Main",
 :directory=>"src",
 :build_config_file=>"build_configuration.rb",
 :local_jruby_jar=>nil,
 :no_config=>"false",
 :show_version=>false,
 :no_download=>"false",
 :no_jar=>"false",

gemライブラリの保存

$ bundle install --path lib/ruby/
Fetching gem metadata from https://rubygems.org/..........
Fetching additional metadata from https://rubygems.org/..
Installing coderay (1.1.0)
Installing exifr (1.1.3)
Installing ffi (1.9.3)
Installing jrubyfx-fxmlloader (0.3)
Installing jrubyfx (1.1.0)
Installing method_source (0.8.2)
Installing slop (3.5.0)
Installing spoon (0.0.4)
Installing pry (0.9.12.6)
Using bundler (1.5.3)
Your bundle is complete!
It was installed into ./lib/ruby

build_configuration.rbの編集

$ vim build_configuration.rb

.....

c.source_dirs = ["src", "lib/ruby"]

パッケージの作成(jar)

$ jruby -S rake rawr:jar /Users/Hoge/Develop/IdeWorkspace/NetBeans7.4/picture-arrangement/.gems/gems/rawr-1.7.0/lib/zip/zip.rb:28: Use RbConfig instead of obsolete and deprecated Config. mkdir -p package/classes/java ..... @verbose = false === Creating jar file: package/jar/picture-arrangement.jar cp lib/java/jruby-complete.jar package/jar/lib/java/jruby-complete.jar

パッケージの実行

$ java -jar package/jar/picture-arrangement.jar Add 'src/' to $: Add 'lib/ruby/jruby/1.9/bin/' to $: Exception in thread "main" org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- jrubyfx at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:1054) .....

あれやこれや色々試して見たが、lib/rubyに保存したgemファイルを参照してくれない。build_configuration.rbに"/lib/ruby"を設定したが。。。何が悪いか。。。わからない。

MacにEclipseをインストールして日本語化する

はじめに

 エディタはvi(emacs)です。と自信をもって宣言できるほどvi使いでも無いので、やはりちょっと規模の大きなソースを見たり、クラス図作ったりする際に、Eclipseが欲しくなる。Macには日本語環境でそれなりに必要なプラグインがインストールされたpleiadesが存在しないようなので、簡単に手順をまとめる。

環境

OS OSX 10.9
Eclipse 4.3

ダウンロードとインストール

 http://www.eclipse.org/downloads/ よりMac版のEclipseをダウンロードする。ファイルはtarファイルなので解凍すると、eclipseディレクトリが作成される。今回はStandard版をダウンロード。 解凍したeclipseディレクトリをユーザディレクトリ内のApplicationsディレクトリにコピーする。コピーすると、LaunchPadにアイコンが作成される。Eclipseを複数バージョンインストールすることも考慮し、ディレクトリ名をeclipse4.3にリネームし、LaunchPadにも4.3が表示されるよう、ショートカットの名前を変更した。 

$ pwd /Users/name/Applications/eclipse4.3
$ ls -l
total 304
drwxr-xr-x@ 3 name staff 102 9 19 17:44 Eclipse4.3.app

初回起動

初回起動時、Javaランタイムのインストールを促すメッセージが表示される場合がある。eclipseJavaランタイムが無いと、動作しないので、インストールを行う。 また、「開発元が未確認のため開けません。」とメッセージが表示され多場合は、システム設定>セキュリティとプライバシーを開き、「[アプリケーション名]は、開発元を確認.....」の「このまま開く」をクリックし、起動を許可する。

eclipseを日本語化する。 http://mergedoc.sourceforge.jp/index.html#/pleiades.html よりpleiadesをダウンロードする。本文書作成時の最新は1.4。 ダウンロードしたファイルを解凍し(自動的に解凍される)、以下の2個のフォルダをeclipse本体のフォルダにコピーする。 ・featuresフォルダを、eclipse本体のfeaturesフォルダにコピーする。 ・pluginsフォルダを、eclipse本体のpluginsフォルダにコピーする。 eclipse.iniを編集する。Macの場合、Finderなどではこのファイルを見つけることができない?難しい? /Users/name/Applications/eclipse4.3は一見ファイルのようだが、実はディレクトリ。この中をたどっていくと、以下のパスにeclipse.iniが存在する。 /Users/name/Applications/eclipse4.3/Eclipse4.3.app/Contents/MacOS eclipse.iniに以下の記述を追加する。

$ vim eclipse.ini
-javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

上記設定後、eclipseを起動すると、日本語が有効となる。

MacでVNCクライアントを利用する

WindowsではVNCクライアントとしてUltra VNCを利用してきたが、MacVNCクライアントって何があるのか?とふと思って検索してみた。

結論としては、Finderに標準で装備されている。

Finder>移動>サーバへ接続を選択

f:id:gyamin:20140209000331p:plain

 

vnc://接続先サーバ:ポート を入力し、「接続」を実行すると、以下のようにめでたくVNCサーバへ接続できる。

f:id:gyamin:20140209002452p:plain