RSS Twitter Facebook


« 2012年03月 | 2012年04月のアーカイブ | 2012年05月 »

2012/04/29

jar => exe 変換


Javaで書かれた実行可能なjarファイルにexeの皮をかぶせるソフトっていうのが幾つかあるんで試しています。有名な所は下の3つくらいのようなんですが・・・

Launch4j

 http://launch4j.sourceforge.net/  Win/Mac/Linuxなどマルチプラットフォームに対応。Launch4j自身がjavaで書かれている模様。javaがインストールされていない場合はインストールを促すページを開いたりする事もできます。結構しっかり作りこまれているんですが、残念ながら出来たexeを日本語名のフォルダに配置すると起動できなくなったりします。起動時のクラスパスはexeファイルを指しています。

JSmooth

 http://jsmooth.sourceforge.net/  こっちの方が古参のようです。winのみですが機能的にはLaunch4jとそれほど差はない感じ。日本語フォルダー名の問題は起こりません。jarをテンポラリに展開して起動しているんですが、クラスパスがそっちを指しているため、JKnobManではちょっと予想外の動作になってしまう(java的には間違った動作ではないんですが)。

exewrap

 http://code.google.com/p/exewrap/  GUIはなくコマンドラインのみ。javaのインストールの案内とかはないけどオプションは結構充実しています。開発は日本の人らしく日本語フォルダーでも問題ありません。でもなぜかexeのコマンドラインからjarに渡されるパラメータの日本語が化けてしまう(エンコードがUnicodeじゃないっぽい)。起動時のクラスパスはカレント('.')

という感じでどうも意にそぐわない動作が起こってしまうのだなあ・・・
どうするかなあ・・・

posted by g200kg : 2:39 PM : PermaLink

2012/04/26

JKnobManのexe版について


リリースしたばかりで何なんですが、JKnobManのexe版に問題がある事が発覚しました。
漢字名が付いたフォルダーに置くと起動に失敗するようです。

この手の問題は昔はありがちだったんだけど、最近ではあまり見なくなってきたんだけどねえ。
「新しいフォルダー」とか作ってそこに置くとてきめんに駄目なようです。
とりあえず、漢字の含まれていない c:\Users\xxxx\の下とかに配置してみてください。

Launch4j使える奴だと思ったのにちょっと困ったな。

posted by g200kg : 12:05 AM : PermaLink

2012/04/25

JKnobMan 1.2.0リリース


JKnobMan 1.2.0をリリースしました。
http://www.g200kg.com/jp/software/knobman.html

バージョン番号が適当な事になってますけど、アプリバンドル作る時のフォーマット的に破綻しそうだったので今後はこの3桁形式でいきます。

今回、Windows向けに「launch4j」というのを使って.jarファイルを.exeにラップしてみました。ファイルの関連付けもこれで普通にできます。中身はjavaなのでJREは必要なんですけど、見かけ上は 普通のWindowsアプリっぽく見えます。JREがインストールされていない場合はブラウザが開いてJavaのページに飛ぶという仕掛けもついています。
http://launch4j.sourceforge.net/

JKnobManの中身の方ですが、
■ 一部英語が残っていたローカライズをほぼ全面的に行いました。
■ 'Image'プリミティブのファイル名欄に Explorer / Finder から直接ドロップできるようになりました。
■ 定義できるアニメカーブの数を4=>8に、各カーブのポイント数を 4=>8に拡充しました。
■ オーバーサンプリング使用時の縮小アルゴリズムを改善。より滑らかな結果が得られるようになりました。
■ その他バグフィックス

となっています。Native版の方は今明らかにバグになっている部分は直したいとは思っていますが、いずれにしても今回JKnobManに入れたような機能的な追加などはやらないと思います。今後KnobMan関係は基本的にこのJKnobManベースで進めて行きます。


最近このNimbus Look&Feelがお気に入り。

posted by g200kg : 9:02 PM : PermaLink

2012/04/24

JRE6


むー、MacのJavaバージョン事情が良くわかっていない。
JRE5環境ってまだ結構あるのでしょうか?
JRE6が出てから4年くらい経ってますのであまり考えなくても良いかなあと思ってたのだけど。

JKnobManはJava6で書いてしまったのでJRE5では動きません。
Graphics2D周りがJava5だとやっぱり機能不足なのだよね。

しかしまあ、そもそもMacとJavaの関係も怪しいと言えば怪しいんだよね。
2年前くらいには「アップルがJavaと決別」みたいな話があったりしたけど、今のところ大丈夫なんだよね? どうなん?
http://japan.zdnet.com/business-application/analysis/20421824/

せっかくKnobManを移植したんだから、あまり妙な事にはならないで欲しいなあ・・・。

とゆうか今はFlashback問題でそれどころじゃないみたいだけど。 最新のパッチ当てないとかなりまずそうですな。
http://bizmash.jp/articles/18258.html

posted by g200kg : 7:27 AM : PermaLink

2012/04/22

JKnobMan 1.10リリース


JKnobMan1.10をリリースしました。
http://www.g200kg.com/jp/software/knobman.html

・パフォーマンス改善
・アンドゥ、リドゥに対応
・アニメーション(アニメGif / APNG)の書き出し
・多言語化 (en / ja / de)
・メニュー、ショートカットのカスタマイズ
・テクスチャーファイルのファイルドロップ対応
その他多数の機能向上を行いました。

多分もうネイティブ版と同等以上に使えると思います。そのうちちゃんと解説ページを作りたいのですが、とりあえず要点の解説

・ファイル-Configのメニューからルック&フィールや言語を切り替えられます。
・同梱されている"Resource"と"Texture"フォルダーはjarファイルと同じ場所に配置してください。
・Texturesはテクスチャーファイルの置き場所でここに画像ファイル(bmp/png/gif/jpg)をおくとテクスチャーメニューから選択できます(Macの場合はコンテキストメニューからバンドルの中身に入る必要があります)。
・ただし v.1.10では画像ファイルをExplorer / Finder から直接テクスチャーのコンボボックスにドロップできますのでこの方が使いよいかも知れません。
・"Resource"フォルダー内にメニューとキーボードの設定ファイルがあります。
Resource/Lang - 各言語でのメニューの設定
Shortcuts - アクセラレータキーの設定
それぞれの設定ファイルはUTF16のテキストファイルです。notepadなどで編集してください。見ればなんとなくわかると思います。
・テキスト:特にアンチエイリアスの掛かり方などはネイティブ版と微妙に異なります。
・エフェクトの立体化(EdgeHilight):ネイティブ版のアルゴがあまり良くなかったので変更した関係で反射の具合が異なります。

Javaの減色機能が結構使える奴だったので、アニメGIFの品質が良くなりました。ネイティブ版KnobManで使っていたGDI+と比べると
JKnobMan
KnobMan

こんな感じです。

posted by g200kg : 11:37 PM : PermaLink

2012/04/17

JKnobMan 1.00


何か煮詰まり気味なので、とりあえず一度リリースします。

KnobManのjavaバージョン「JKnobMan」です。

http://www.g200kg.com/jp/software/knobman.html
結構チューニングしたのでパフォーマンス的にはネイティブ版と遜色ない所まできたと思います。機能としてあと足りないのは大きなところはUndo/Redoとアニメーション書き出しくらいかな。結構手間かかっちゃったし、構造の整理もできたので、これをメインストリームにしようかなあ。MacだとJREのインストールも自動だしあまりjavaという事を意識しないと思うのだよね。Winだとひと手間かかる感がやっぱりあるかな。あまり気にならないかな・・。どうかな。

Macで動かしたとき

これはWindows上でのNimbusルック&フィール

posted by g200kg : 1:08 AM : PermaLink

2012/04/14

1ファイル10000行


最近何をやってるかというとKnobManのJava版を作ってたんですよ。
しかし何か予想以上に時間がかかってしまってます。もっとこう、さくっと移植してさくっとリリースするつもりだったんだけどねえ。

フルファンクション入れようとしてるのでボリュームも多いというのは別にして C++ ⇒ Javascript で移植した時に比べて C++ or Javascript ⇒Javaの方が倍くらい時間がかかっている気がする。

1つは先日も言ったGUIの些細な部分にひっかかって、いちいち時間が掛かるというのがあるのだけど、もう1つの要因はJava本来の特性だと思うのだよね。

クラス設計の見直しを言語に強要されるというか、そんな感じ。もともと完璧なクラス設計なら多分何も問題はないのだけど、増築のあげくに汚くしちゃった部分とかがそのままでは凄く書きにくくて、ここはやっぱり構造を整理しようかというような方面に意識がいってしまう。

大体C++とかだと勢いにまかせて1万行くらいまでは1ファイルで書いちゃったりする事もあるのだけどJavaだとクラス毎に分割せざるを得ないしクラス間の繋がりに変な所があると目に付くようになってるのだなあ。まあこれはJavaという言語が意図する事でもあるし、本来そうあるべきと言われればしょうがないのだけど。

しかしそれでも、良くないスタイルと言われる事は承知の上で1ファイルで1万行書いちゃうのは、それはそれで利点もあるのですよ。人にもよるかも知れないし推奨するわけではないけど。

とにかくブラウズ性が良い。ファイルのどのあたりに何の処理を書いたか覚えていれば(これが重要)すぐにアクセスできる(これの限界が1万行くらい)。検索もgrepなんか使わずにファイル内検索ですむしコード全体の中での特定の処理が占める割合とかも瞬時に把握できる。

ファイルが沢山あって芋づる式に辿りながら見ていくと今自分がどこを見てるのかわかんなくなる事があるのだけど、1ファイルだとそういう事がないから全体が把握しやすいんだよねー。

細切れになったJavaのファイルを繋げて長いファイルみたいに見せてくれるエディタとかあればいいかも知れんなー。

posted by g200kg : 1:02 AM : PermaLink

2012/04/12

Presonus Studio Oneにフリー版が・・・


Presonus Studio Oneがバージョンアップして「Studio One Free」というラインナップが追加されました。
Presonusも思い切った事をするなー、と思ったけど、どうやらこいつはVSTなどのサードパーティプラグインは使えないらしい。

まあそりゃそうか。こいつにプラグインを突っ込んでいけたらかなりの人がこれだけで満足してしまうな。
同梱されているサンプルプレーヤーに一通りの音色は入っているのでとりあえず触ってみるならこれで充分と言えば充分。

http://studioone.presonus.com/free/

基本的に操作感はCubaseっぽいのであまり違和感なしに触れるんだよねえ。DAWのメニューの中に有償版への「アップグレード」メニューがあります。これはなかなかうまい誘惑。(でもなんか今リンクエラーになって動かない)

posted by g200kg : 8:49 PM : PermaLink

2012/04/07

Javaのルック&フィール


ここ最近、Javaをいじくり回しています。
まあクロスプラットフォームと言えばJavaですからねえ、原点回帰というか。しかしまあ、Javascriptのゆるゆるな感じに慣れてしまうとどうも窮屈なんだよなあ。良くあるシングルトンパターンなんて自分で首を締めておいて一生懸命抜け道を探しているみたいなものなんじゃないかい。

でまあ、デスクトップアプリ環境として見た場合、パフォーマンスは置いておくとして、見てくれの部分が非常に微妙なのだよ。駄目と言うわけではなく凄く頑張ってるとは思うのだけどね。

今Javaの表示系として使えそうなものは AWT / Swing / SWT という選択肢があるんですが・・・。

上が昔からあるJavaのAWTを使って書いたもの。今となっては古い設計で、ネイティブのWidgetを呼び出しているのだけど、いわゆるクラシック表示ですね。下はSWTで書いたもの。ネイティブアプリと同等の表示を目指した薄いラッパーなので見てくれとしてはネイティブアプリと同等。ただしこれはJavaとしては非公式のライブラリで、プラットフォーム毎にDLLが必要になります。特に今Max OSでは64bit JavaVM と32bit JavaVMが混在していてちょっと面倒な事になっているようです。
http://www.eclipse.org/swt/

Java公式のAWT後継の表示ライブラリはピュアJavaで書かれたSwingです。デフォルトは上段の表示。これ結構見かけますね。普通にSwingで書けばこうなります。まあ、別にこれでいいじゃないか、と言ってしまえばそれまでなんですけどやはり違和感はぬぐえない。でも実はSwingはルック&フィールの切り替えっていう機能があるんですねー。でWindows風にしたのが下段。

うーん、これならいいかなあ。微妙に違うけど。

で、言いたかったのは、Swingが駄目とか素晴らしいとかでもなくて、OSの標準Widgetに合わせてピュアJavaでこんなライブラリを作ってたなんて事自体がある意味壮大に無駄、いや意味はあるんだけどなんか辛そうな作業だなあと。
クロスプラットフォームを目指す以上、Swingのデフォルト表示で統一したい所だけど実際問題ユーザーは満足してくれないし、プラットフォームに依存しすぎるとRun anywhere とはいかないし、苦渋の選択という奴だったんじゃないかなあ。

でもね。やっぱり文字のアンチエイリアスの掛かり方とかが気になるんだよ。それでまた、その対策の小細工のやり方を試行錯誤したりして、全然開発効率があがんないという。

posted by g200kg : 12:07 AM : PermaLink

2012/04/01

iTunesアカウント・・・


「最近、お客様の iTunes アカウントが他者によって無断アクセスされた可能性があります・・・」云々のメールが来ていた。
なんか前にもあったなあ。

確認した所、アカウントがロックされていて金銭的被害はない模様。
しかし、どうも落ち着かん。

去年の夏あたりからiTunesアカウントへの攻撃が頻発しているみたいで金銭的被害も結構出ているみたいだねえ。もうこのアカウント止めておくかなあ。

posted by g200kg : 11:41 PM : PermaLink

« 2012年03月 | 2012年04月のアーカイブ | 2012年05月 »


g200kg