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

カラムの表示文字数を設定する

SQL*Plusでデータ表示を行うと、以下のように意図しないところ改行が入り、内容を確認しづらい。

SQL> select host_name, instance_name, status from v$instance;

HOST_NAME

----------------------------------------------------------------

INSTANCE_NAME    STATUS

---------------- ------------

oracle-sv01.localdomain

orcl             OPEN

 COLUMN カラム名 FORMAT a文字数 を指定することで、カラムに表示する文字数を設定できる。

SQL> column host_name format a25;

SQL> select host_name, instance_name, status from v$instance;

HOST_NAME                 INSTANCE_NAME    STATUS

------------------------- ---------------- ------------

oracle-sv01.localdomain   orcl             OPEN

 

 

SQL*PlusでBack Space を有効にする

SQL*Plusで[Back Space]を入力すると、以下のように^Hが入力され、文字の削除ができない。

SQL> ^H

文字列の削除は[Delete]キーか[Ctrl]+[Back Space]で可能であるが、[Back Space]キーで文字列の削除ができるようにするには、SQL*Plus上で以下を実行する。※^HはBackSpcaeで入力。

SQL> ho stty erase ^H

 

Oracleデータベースの起動について

Oracleデータベースの起動について

停止しているOracleデータベースを起動する。

Oracleデータベースの状態には以下の3つの状態が存在する。

ステータス説明
NOMOUNT パラメータファイルが参照され、メモリ確保やプロセスが開始され、インスタンスが起動した状態。
MOUNT パラメータファイルで指定されたコントロールファイルがオープンした状態。コントロールファイル以外のデータファイルはマウントおよびオープンしない。
OPEN コントロールファイルの情報から、データファイルやログファイルがオープンされた状態。通常の稼働状態で、ユーザがデータベースを利用できる状態。

sqlplusからsysdba権限でデータベースに接続。

$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 土 11月 2 19:19:58 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

アイドル・インスタンスに接続しました。

 "nomount"で起動する。

SQL> startup nomount

ORACLEインスタンスが起動しました。

Total System Global Area  839282688 bytes

Fixed Size                  2217992 bytes

Variable Size             557844472 bytes

Database Buffers          276824064 bytes

Redo Buffers                2396160 bytes

SQL> select host_name, instance_name, status from v$instance;

 

HOST_NAME                 INSTA STATUS

------------------------- ----- ----------

oracle-sv01.localdomain   orcl  STARTED

"mount"状態に変更する。

 SQL> alter database mount;

データベースが変更されました。

SQL> select host_name, instance_name, status from v$instance;

HOST_NAME                 INSTA STATUS

------------------------- ----- ----------

oracle-sv01.localdomain   orcl  MOUNTED

"open"状態に変更する。

 SQL> alter database open;

データベースが変更されました。

SQL> select host_name, instance_name, status from v$instance;

HOST_NAME                 INSTA STATUS

------------------------- ----- ----------

oracle-sv01.localdomain   orcl  OPEN

 

Oracle EnterpriseManagerの起動

Oracle11gではOracle Enterprise ManagerというWebベースのデータベース管理インテーフェイスが準備されている。EMを利用するには、データベースサーバでEMを起動する必要がある。

EMのステータス

$ emctl status dbconsole

Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0

Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.

https://oracle-sv01.localdomain:1158/em/console/aboutApplication

Oracle Enterprise Manager 11g is not running.

 EMを起動

$ emctl start dbconsole

Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0

Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.

https://oracle-sv01.localdomain:1158/em/console/aboutApplication

Starting Oracle Enterprise Manager 11g Database Control ............ started.

------------------------------------------------------------------

Logs are generated in directory /u01/app/oracle/product/11.2.0/dbhome_1/oracle-sv01.localdomain_orcl/sysman/log

 ブラウザでのアクセス

ブラウザでhttps://192.168.1.55:1158/emにアクセス。デフォルトではsystemやsysユーザでアクセスできる。

f:id:gyamin:20131102195441p:plain