さようなら、Sleipnir
こんにちわ、Firefox 4.0
2011年3月24日木曜日
2011年2月9日水曜日
Androidの壁紙
特別やらなきゃいけないことがないのに忙しい日々。
それが自分の担当でもない物件で、内容もつまらない物でテンション下がる一方なのに何故か気がつけばそれが3件くらい溜まってたりとか、勘弁してください。
まぁ、詰まるものが自分の場合趣味が悪い物が多いんですがね(`・ω・´)
まー、もうちょっと待てば外注…のような所からプロが上がってくるので検収せねば。
検収って苦手なんですよね。
無意識的に危険行為を避けるのはプログラマーの悪い癖です。
癖ですので直せません(キリ
こういう検収は昔の方が上手かった気がするなぁ…昔は昔で駄目な所一杯だったけど。
というわけで、今日はAndroidの壁紙で初めてライブ壁紙なんていうものを知りました。
そもそもなんでそんなものを知ったかというと、MACがムカつく > 林檎を中傷したような壁紙があることを知る > 探す > 見つからない > なんだこれはってことで見つかりました。
ちなみに林檎を中傷した壁紙は見つかりませんでした。
真面目にこんなのあったんですねぇ…これ結構いいかも。
でも、最初に設定したのは背景がびみょーに変化していく地味な奴。
そのあと、もっといいのがないかと調べてみる。
するとVideo Live Wallpaperなる物があることをしる。
これは、よーするに画像ファイルをライブ壁紙にしてくれるもの。
でもカクカクなんじゃねえの?と思いながらも、気に入っている曲のPVをDL。
aviにして放り込んでみる。
…おお、すげえ。ヌルヌル動く!
と、想像してたものよりも良かったです。
元動画にもよるでしょうけど、劣化は余り感じませんでした。いい感じ(*≧∇≦)
でも代わりに電池消耗がすげーーーーー不安。
まあ最近電池消耗がかなり減ったxperiaなので、なんとかなるんじゃね?と思ってます。
あまりにも減るようなら残念ながら使えませんけどね…
ぶっちゃけ、スマホに変えた意味あるの?と人に聞かれると地味に辛いのでちったぁ拡張していかないと。
それが自分の担当でもない物件で、内容もつまらない物でテンション下がる一方なのに何故か気がつけばそれが3件くらい溜まってたりとか、勘弁してください。
まぁ、詰まるものが自分の場合趣味が悪い物が多いんですがね(`・ω・´)
まー、もうちょっと待てば外注…のような所からプロが上がってくるので検収せねば。
検収って苦手なんですよね。
無意識的に危険行為を避けるのはプログラマーの悪い癖です。
癖ですので直せません(キリ
こういう検収は昔の方が上手かった気がするなぁ…昔は昔で駄目な所一杯だったけど。
というわけで、今日はAndroidの壁紙で初めてライブ壁紙なんていうものを知りました。
そもそもなんでそんなものを知ったかというと、MACがムカつく > 林檎を中傷したような壁紙があることを知る > 探す > 見つからない > なんだこれはってことで見つかりました。
ちなみに林檎を中傷した壁紙は見つかりませんでした。
真面目にこんなのあったんですねぇ…これ結構いいかも。
でも、最初に設定したのは背景がびみょーに変化していく地味な奴。
そのあと、もっといいのがないかと調べてみる。
するとVideo Live Wallpaperなる物があることをしる。
これは、よーするに画像ファイルをライブ壁紙にしてくれるもの。
でもカクカクなんじゃねえの?と思いながらも、気に入っている曲のPVをDL。
aviにして放り込んでみる。
…おお、すげえ。ヌルヌル動く!
と、想像してたものよりも良かったです。
元動画にもよるでしょうけど、劣化は余り感じませんでした。いい感じ(*≧∇≦)
でも代わりに電池消耗がすげーーーーー不安。
まあ最近電池消耗がかなり減ったxperiaなので、なんとかなるんじゃね?と思ってます。
あまりにも減るようなら残念ながら使えませんけどね…
ぶっちゃけ、スマホに変えた意味あるの?と人に聞かれると地味に辛いのでちったぁ拡張していかないと。
2011年1月31日月曜日
頑張って報われるのなら
というわけでまた更新。
やりたかった事はAIR >>> サーバー > CF > JAVA > gsprint.exe
の実行。
Javaは割とすんなりでき
CFはちょっとてこずりながらも出来
さあ、実行、と思ったところできっちりハマる。
ハマって、ハマって、CF壊しかけて、ついでにサーバーも壊しかける。
コマンドプロンプトからは上手くいくくせに、CF経由すると上手くいかないとか…。
ほとんど諦めきった所で、ふと思う。
…あれ、コマンドプロンプトで実行されるgsprint.exeとCF経由のgsprint.exe、ユーザーが違うんですけど?
と、ここまでたどり着いて、あれjavaから動かすと全部システムだっけ?と思って別のも確認…違うな。
ってことは、ここが悪いんじゃね?
と当たりをつけて、もうちょっと詳しい人にアドバイスを聞いてみる…。
で、結果CFのサービスのユーザーを変えて見事解決!!
いい所まで当たりをつけた、俺!
もう今日はこれだけで満足満足
やりたかった事はAIR >>> サーバー > CF > JAVA > gsprint.exe
の実行。
Javaは割とすんなりでき
CFはちょっとてこずりながらも出来
さあ、実行、と思ったところできっちりハマる。
ハマって、ハマって、CF壊しかけて、ついでにサーバーも壊しかける。
コマンドプロンプトからは上手くいくくせに、CF経由すると上手くいかないとか…。
ほとんど諦めきった所で、ふと思う。
…あれ、コマンドプロンプトで実行されるgsprint.exeとCF経由のgsprint.exe、ユーザーが違うんですけど?
と、ここまでたどり着いて、あれjavaから動かすと全部システムだっけ?と思って別のも確認…違うな。
ってことは、ここが悪いんじゃね?
と当たりをつけて、もうちょっと詳しい人にアドバイスを聞いてみる…。
で、結果CFのサービスのユーザーを変えて見事解決!!
いい所まで当たりをつけた、俺!
もう今日はこれだけで満足満足
AIRから印刷…その前に
というわけで、AIRから印刷したいよーとのご要望がありましたので。
gsviewっというのを使って印刷することに。
で、とりあえずローカル環境でjavaのプロセスを使用して印刷がかかる所までを確認して
後はcoldfusionからjavaを動かせば完璧!! ←ここまでが先週
と、ここからが詰んだ。
正確にはこの後久々にcfm、cfcからjavaを動かすので昔のソースを参考にいじりつつ。
IEで何度もCFMを動かしたりしながら進んで、おお!!javaが動くぞ。という所で今度はプロセスが上手くいかないのか、gsviewが動かない。
どっか引数でこけてるのか?と思ってリターン値でどこまで進んだのか分かるようにして再実行。
…全部とおってんじゃねえか。
で、そこから試行錯誤の始まり…coldfusionのjavaVM変えたらcoldfusionのサービスが動かなくなった\(^o^)/
なんでじゃああああと、あせりました。
というか今日は朝にもPCが逝きかけるっていう結構アレな状況になって焦ったりもしたので今日はそういう日ですか。
帰りは気をつけます。
で、まあ元の値に戻せばいいだろ、と思ってとりあえず変えた値をgrepで検索をかける…
みつかんない、だと。
ふざけんなボケ、そんなVMのパス変えただけでサービスが死ぬとかねえよ。
そんな大事な所なら変えたタイミングで必要なものがあるかチェックしろよ!アドべ!!
と焦りまくって、探した結果
http://kb2.adobe.com/jp/cps/102/102452.html
メモ:手作業での変更、ColdFusion Administrator を用いた変更のどちらを選択する場合でも、変更作業を
開始する前に必ず jvm.config のバックアップコピーを作成するようにしてください。
あほかあああああああああ!!!1!!
書くとこ違うだろ。
まあ、でもjvm.configね…てっきりiniかと思ってたけどconfigか。
Coldfusionをインストールしたフォルダを検索掛けてファイルを開いてみると、指定したパスがC:\\~で書かれてました。そりゃgrepじゃかからんわ。
で、今後はここを気をつけながら進もう…ていうかこれを書いているタイミングではまだサーバーから印刷されません\(^o^)/
にも関わらずjavaは動いてるし、ちゃんとコマンドプロンプトからjava実行する分には動くしと…
で、結局社内でjavaのことなんか相談できる人がいないので結局また孤軍奮闘・孤立無援ですか。
別にいいけどさぁ…一人好きだし。
でもここは会社なんだぜ!ってこういう都合のいい時にだけきれいごと言うから偽善者って言われるんだろうな。
どっちかっていうと自分は偽悪者です。
偽悪者って読んでもらえる分には何も思わないけど、偽善者呼ばわりされるとちょっと勘に障る変わった自分。
とりあえず印刷できたらまた原因の方を書きたいと思います。
gsviewっというのを使って印刷することに。
で、とりあえずローカル環境でjavaのプロセスを使用して印刷がかかる所までを確認して
後はcoldfusionからjavaを動かせば完璧!! ←ここまでが先週
と、ここからが詰んだ。
正確にはこの後久々にcfm、cfcからjavaを動かすので昔のソースを参考にいじりつつ。
IEで何度もCFMを動かしたりしながら進んで、おお!!javaが動くぞ。という所で今度はプロセスが上手くいかないのか、gsviewが動かない。
どっか引数でこけてるのか?と思ってリターン値でどこまで進んだのか分かるようにして再実行。
…全部とおってんじゃねえか。
で、そこから試行錯誤の始まり…coldfusionのjavaVM変えたらcoldfusionのサービスが動かなくなった\(^o^)/
なんでじゃああああと、あせりました。
というか今日は朝にもPCが逝きかけるっていう結構アレな状況になって焦ったりもしたので今日はそういう日ですか。
帰りは気をつけます。
で、まあ元の値に戻せばいいだろ、と思ってとりあえず変えた値をgrepで検索をかける…
みつかんない、だと。
ふざけんなボケ、そんなVMのパス変えただけでサービスが死ぬとかねえよ。
そんな大事な所なら変えたタイミングで必要なものがあるかチェックしろよ!アドべ!!
と焦りまくって、探した結果
http://kb2.adobe.com/jp/cps/102/102452.html
メモ:手作業での変更、ColdFusion Administrator を用いた変更のどちらを選択する場合でも、変更作業を
開始する前に必ず jvm.config のバックアップコピーを作成するようにしてください。
あほかあああああああああ!!!1!!
書くとこ違うだろ。
まあ、でもjvm.configね…てっきりiniかと思ってたけどconfigか。
Coldfusionをインストールしたフォルダを検索掛けてファイルを開いてみると、指定したパスがC:\\~で書かれてました。そりゃgrepじゃかからんわ。
で、今後はここを気をつけながら進もう…ていうかこれを書いているタイミングではまだサーバーから印刷されません\(^o^)/
にも関わらずjavaは動いてるし、ちゃんとコマンドプロンプトからjava実行する分には動くしと…
で、結局社内でjavaのことなんか相談できる人がいないので結局また孤軍奮闘・孤立無援ですか。
別にいいけどさぁ…一人好きだし。
でもここは会社なんだぜ!ってこういう都合のいい時にだけきれいごと言うから偽善者って言われるんだろうな。
どっちかっていうと自分は偽悪者です。
偽悪者って読んでもらえる分には何も思わないけど、偽善者呼ばわりされるとちょっと勘に障る変わった自分。
とりあえず印刷できたらまた原因の方を書きたいと思います。
2011年1月11日火曜日
あけましておめでとうございます
ちょっと放置してた。
あけましておめでとうございます。
本日仕事でとある圧縮ファイルを某場所から送ってほしいと依頼を受けたので、某場所からファイルを受け取りそのまま送ってみる。
すると、よく見ると拡張子がlzh。
依頼元はwindows server 2003(もしくは2008)でやっているのでlzhは解凍できないとのこと。
いや、そんなものの以前に圧縮ソフトいれとけよ!ってお話なんですけどね。
もしくはネット繋がってるんだしいくらでもやりようはあるのに、依頼元の取った対応法は拡張子変えてもう一度送り直せ、とこちらにご命令。
いやま、送れと言われればやりますけどね。
解凍してそのまま送るだけでいいしょ?
でも、そもそもlzhってwindows標準じゃなかったっけ?と思ってちょっと調べてみる。
で、結論的には全然標準なんかじゃなくて拡張用ソフトウェアの配布をしているらしい。
でも今は配布停止中らしい。
そもそもZIPの対応もMEからだとか。
7とかはどうなんだろ。
と言ってもマイクロソフト標準なんぞより、その辺のフリーソフトの方がよっぽど使いやすいだろうけど。
流石にPCも普及してlzh、zipが解凍出来てないなんて人はほとんどいないだろうし
そもそも利益に繋がらないからかな?
そんなことよりよっぽど対応してほしい所がいくつもあるので、そっちを頑張れマイクロソフト。
アドビはその10倍頑張りやがれ。
あけましておめでとうございます。
本日仕事でとある圧縮ファイルを某場所から送ってほしいと依頼を受けたので、某場所からファイルを受け取りそのまま送ってみる。
すると、よく見ると拡張子がlzh。
依頼元はwindows server 2003(もしくは2008)でやっているのでlzhは解凍できないとのこと。
いや、そんなものの以前に圧縮ソフトいれとけよ!ってお話なんですけどね。
もしくはネット繋がってるんだしいくらでもやりようはあるのに、依頼元の取った対応法は拡張子変えてもう一度送り直せ、とこちらにご命令。
いやま、送れと言われればやりますけどね。
解凍してそのまま送るだけでいいしょ?
でも、そもそもlzhってwindows標準じゃなかったっけ?と思ってちょっと調べてみる。
で、結論的には全然標準なんかじゃなくて拡張用ソフトウェアの配布をしているらしい。
でも今は配布停止中らしい。
そもそもZIPの対応もMEからだとか。
7とかはどうなんだろ。
と言ってもマイクロソフト標準なんぞより、その辺のフリーソフトの方がよっぽど使いやすいだろうけど。
流石にPCも普及してlzh、zipが解凍出来てないなんて人はほとんどいないだろうし
そもそも利益に繋がらないからかな?
そんなことよりよっぽど対応してほしい所がいくつもあるので、そっちを頑張れマイクロソフト。
アドビはその10倍頑張りやがれ。
2010年12月21日火曜日
オブジェクトのプロパティを取得したい
ちょっと間が空いた気がする。
さて、今回はObjectに突っ込んだプロパティを取得したい
つまり
といった所の、「ABC」「DEF」「GHI」が取りたい、と。
昔やった気がするなーと思いながら調べると行きついたのがここ
といってもグーグル先生の一件目でしたが。
http://www.coltware.com/2009/06/08/as3_for_each/
つまり明示的に付けたプロパティは配列型になって格納されているってことですね!
ここではForでやってるけどobj[0]とかでも取れるんじゃない?Length取れないから面倒だけど。
まあ、何でこんなのをやろうかと思い至ったかというと外注にソースをあらされるのが嫌なので共通で使えるようなmxmlを作って、先手を打って押さえておこうかと。
それに手塩にかけたソースは何だかんだで可愛いので。
自分メインで作った子はちゃんと面倒見たいとも思いますしね…。
まあ一部、自分で作ったのに見捨てた子もいますけど、持ってかれた子もちょこちょこいたりいなかったり。
さて、今回はObjectに突っ込んだプロパティを取得したい
つまり
var obj:Object = new Object; obj.ABC = "123"; obh.DEF = "GGG"; obh.GHI = 10;
といった所の、「ABC」「DEF」「GHI」が取りたい、と。
昔やった気がするなーと思いながら調べると行きついたのがここ
といってもグーグル先生の一件目でしたが。
http://www.coltware.com/2009/06/08/as3_for_each/
つまり明示的に付けたプロパティは配列型になって格納されているってことですね!
ここではForでやってるけどobj[0]とかでも取れるんじゃない?Length取れないから面倒だけど。
まあ、何でこんなのをやろうかと思い至ったかというと外注にソースをあらされるのが嫌なので共通で使えるようなmxmlを作って、先手を打って押さえておこうかと。
それに手塩にかけたソースは何だかんだで可愛いので。
自分メインで作った子はちゃんと面倒見たいとも思いますしね…。
まあ一部、自分で作ったのに見捨てた子もいますけど、持ってかれた子もちょこちょこいたりいなかったり。
2010年12月14日火曜日
JAVAとAIRの連携について
現在開発中のアプリケーションには大容量のファイルを圧縮する、という処理をAIRで行わなければならない。
調べてみるとAirでZIPを作成するライブラリがあるのだが、正直遅い。
おまけに200を超えたあたりでエラーで落ちる…。
これでは物にならないので考えたのが、じゃあJAVAに振ってしまえと。
JAVAならクロスプラットフォームを維持できる。
じゃあどうやってAIRからJAVAを動かそうか、という話になって浮かんだ可能性が2つ
・ソケット通信にてAIRとJAVAを連携
・NativeProcessにてJAVAを起動
前者のは既に以前行っており、ある程度動くことは想定された。
ただ、ソケット通信をするためにはAIRがソケット接続を行いに行った際にサーバー側であるJAVAが動いていないと駄目。
更にAIRからJAVAを動かすことができないからソケット通信なんていうものを行おうとしているのに、これでは本末転倒である。
で、発想を逆転させてJAVAからAIRを動かそうぜ、と。
つまりJAVA起動 > AIR起動 > ソケット接続(AIR) > ソケット送信(AIR) > ソケット受信(JAVA) > プロセス起動(JAVA)
になる。
はっきり言って動作的には問題ない。
が、いくつかの問題点がある。
1.JAVAがサーバー状態になるのでプロセスに常時残る。
2.AIRインストール時、別個起動ショートカットをJAVAにしておく必要がある
3.AIRからJAVAが生きているかどうか判断ができない
4.JAVAからAIRに何かしらイベントを送ることができない
まず1がMacで見るとタスクに出てしまうのでカッコ悪い…。
windowsならありなんだが。
2についてはつまり、毎回新規インストール時にこちらが面倒を見なければならない。
かといって、クライアントに作業してもらうには少々微妙な内容。
3は結構致命的。何らかの理由でJAVAが死んだ際にもうお手上げ。
4も連携を取るのが出来ないわけではないにしろカッコ悪い。
例えばとあるテキストファイルをAir側で監視しておいて、そこにjavaが書きこんだら~で出来なくはない…。
では続いて後者へ
まあこっちもこっちで問題があって、まずbatファイルは起動できない。
いやまあ、javaで使用してるライブラリが全部標準ライブラリなら問題ないんだけれど、そうもいかないので。
あー、でもどうなのかな。クラスパス通ってなかったら動かないのかな?
という問題を解決するために思い至ったのがjarのexe化。
結構画期的だと思ったんですけどね…。
当初はJSmoothというツールを使ってexe化してたんですが、これでexe化するとAir側でハンドルするプロセスの終了イベントの発生タイミングがおかしい。
とりあえず最後にメッセージボックスを表示すれば何とか逃げられたのでこれで逃げてたのがこの前までのお話。
でもほら、カッコ悪いじゃない。
最後に明らかにデザイン?がおかしいメッセージが出てくるなんて。
おまけにそのZIPをアップロードしたり、そのあとにデータを書き込んだりすることを考えると、中間のタイミングでメッセージ出るなんて正気の沙汰じゃない。
というわけで昨日夕方から時間が空いたので取りこんだのが今回のお話。
そのあと奮戦してexewrapとか使ってみたりしても駄目。
じゃあまあ、原点に帰ろうぜということで
AirからNativeProcessを利用してJAVAを動かしたい、と考えるのは俺だけじゃないはずだ!!
というわけでggったらこんなのが
http://irpart.blogspot.com/2010/01/adobe-air2-nativeprocess.html
まさに俺がしたかったことじゃないか!!
つまりコマンドプロンプトで「java ~~~~」と書く所の先頭のJAVA.exeに引数を与えてJAVAの正規実行にしてしまおうと。
なんて王道。
邪道ばっかり歩いてきた誰かとは発想が違う。
で、ここからは今度はJAVAのスキル不足が露呈。
クラスパスの設定だとかが分からなくて苦戦苦戦…。
絶対パスの考え方の問題なんですよねぇ…。
メインメソッドが見つかりませんとかもう見飽きました!!
で、まあ何とかできました!
ちなみにjavaはもちろんjar化しておきます。
インスコ後にコンパイルしてもらうわけにはいかないので
C:/Flex Builder 3/ZIPSample/bin-debug/
っていうのはもちろんアプリの実行されているパスですね。
で、これも一個だけ問題が。
Macはjava.exeのパスが固定?っぽいんだけど、windowsはちょくちょく更新がかかるせいで
jdk1.6.0_20 とか jdk1.6.0_16 とか jdk1.6.0_15 とかあるわけなんですよねぇ…
まあ初回起動時にどれ使うって選択させる必要があるのかな。
うちの○○とかがそんな選択画面を見たら分からん分からんって大騒ぎしそうだけど
ちょっと話が逸れるけど、人が一生懸命1から10まで隙がないように努力して書いた説明見ないんだぜ?
ついでになるべく簡潔にまとまるように考えて書いてるんだぜ?
抜けてたら揚げ足取る癖にろくに見ないんだぜ?
見ないなら見ないでいいけど、わからなかろーがなんだろうが何も聞くなっての。
ここまで書いて、今後似たようなことあって、ここ見ろって言っても絶対最後まで読まないんだろうなぁ…。
まあ、ここでの文章は色々抜けがあるからいいっちゃいいけどさ。
そういえば1から10を話さず10だけ話す人がいるんだ。
ことわざで1を聞いて10を知る、というのがあるけどそれはまだ出来なくはないと思うんだ。
だって、1を聞いて2を予想し、3に繋げて・・・内容次第では出来ると思うんだ。
でもさ、10だけ聞いて分かる人っていないと思うんだ。
例えば数学で答えは「10」と言われたとしよう。
それで全貌を把握なんてできないと思うんだ。
足し算なのか引き算なのか、掛け算なのか割り算なのかさえ分からないんだぜ…?
絶対無理。
誰か通訳plz
調べてみるとAirでZIPを作成するライブラリがあるのだが、正直遅い。
おまけに200を超えたあたりでエラーで落ちる…。
これでは物にならないので考えたのが、じゃあJAVAに振ってしまえと。
JAVAならクロスプラットフォームを維持できる。
じゃあどうやってAIRからJAVAを動かそうか、という話になって浮かんだ可能性が2つ
・ソケット通信にてAIRとJAVAを連携
・NativeProcessにてJAVAを起動
前者のは既に以前行っており、ある程度動くことは想定された。
ただ、ソケット通信をするためにはAIRがソケット接続を行いに行った際にサーバー側であるJAVAが動いていないと駄目。
更にAIRからJAVAを動かすことができないからソケット通信なんていうものを行おうとしているのに、これでは本末転倒である。
で、発想を逆転させてJAVAからAIRを動かそうぜ、と。
つまりJAVA起動 > AIR起動 > ソケット接続(AIR) > ソケット送信(AIR) > ソケット受信(JAVA) > プロセス起動(JAVA)
になる。
はっきり言って動作的には問題ない。
が、いくつかの問題点がある。
1.JAVAがサーバー状態になるのでプロセスに常時残る。
2.AIRインストール時、別個起動ショートカットをJAVAにしておく必要がある
3.AIRからJAVAが生きているかどうか判断ができない
4.JAVAからAIRに何かしらイベントを送ることができない
まず1がMacで見るとタスクに出てしまうのでカッコ悪い…。
windowsならありなんだが。
2についてはつまり、毎回新規インストール時にこちらが面倒を見なければならない。
かといって、クライアントに作業してもらうには少々微妙な内容。
3は結構致命的。何らかの理由でJAVAが死んだ際にもうお手上げ。
4も連携を取るのが出来ないわけではないにしろカッコ悪い。
例えばとあるテキストファイルをAir側で監視しておいて、そこにjavaが書きこんだら~で出来なくはない…。
では続いて後者へ
まあこっちもこっちで問題があって、まずbatファイルは起動できない。
いやまあ、javaで使用してるライブラリが全部標準ライブラリなら問題ないんだけれど、そうもいかないので。
あー、でもどうなのかな。クラスパス通ってなかったら動かないのかな?
という問題を解決するために思い至ったのがjarのexe化。
結構画期的だと思ったんですけどね…。
当初はJSmoothというツールを使ってexe化してたんですが、これでexe化するとAir側でハンドルするプロセスの終了イベントの発生タイミングがおかしい。
とりあえず最後にメッセージボックスを表示すれば何とか逃げられたのでこれで逃げてたのがこの前までのお話。
でもほら、カッコ悪いじゃない。
最後に明らかにデザイン?がおかしいメッセージが出てくるなんて。
おまけにそのZIPをアップロードしたり、そのあとにデータを書き込んだりすることを考えると、中間のタイミングでメッセージ出るなんて正気の沙汰じゃない。
というわけで昨日夕方から時間が空いたので取りこんだのが今回のお話。
そのあと奮戦してexewrapとか使ってみたりしても駄目。
じゃあまあ、原点に帰ろうぜということで
AirからNativeProcessを利用してJAVAを動かしたい、と考えるのは俺だけじゃないはずだ!!
というわけでggったらこんなのが
http://irpart.blogspot.com/2010/01/adobe-air2-nativeprocess.html
まさに俺がしたかったことじゃないか!!
つまりコマンドプロンプトで「java ~~~~」と書く所の先頭のJAVA.exeに引数を与えてJAVAの正規実行にしてしまおうと。
なんて王道。
邪道ばっかり歩いてきた誰かとは発想が違う。
で、ここからは今度はJAVAのスキル不足が露呈。
クラスパスの設定だとかが分からなくて苦戦苦戦…。
絶対パスの考え方の問題なんですよねぇ…。
メインメソッドが見つかりませんとかもう見飽きました!!
で、まあ何とかできました!
private var _process:NativeProcess;
_process = new NativeProcess();
var _info:NativeProcessStartupInfo = new NativeProcessStartupInfo();
var _file:File;
_file = new File("C:/Program Files/Java/jdk1.6.0_20/bin/java.exe");
var args:Vector.<String> = new Vector.<String>;
args.push("-cp");
args.push('"C:/Flex Builder 3/ZIPSample/bin-debug/;C:/Flex Builder 3/ZIPSample/bin-debug/ant.jar;C:/Flex Builder 3/ZIPSample/bin-debug//ZipComp.jar"');
args.push("ZipComp");//実行するクラス
args.push("圧縮するファイル");
_info.executable = _file;
_info.arguments = args;
_process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA,RunProcsSTD_OutHandler);
_process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA,RunProcsSTD_ErrHandler);
_process.addEventListener(NativeProcessExitEvent.EXIT,RunProcsExit);
_process.start(_info);
ちなみにjavaはもちろんjar化しておきます。
インスコ後にコンパイルしてもらうわけにはいかないので
C:/Flex Builder 3/ZIPSample/bin-debug/
っていうのはもちろんアプリの実行されているパスですね。
で、これも一個だけ問題が。
Macはjava.exeのパスが固定?っぽいんだけど、windowsはちょくちょく更新がかかるせいで
jdk1.6.0_20 とか jdk1.6.0_16 とか jdk1.6.0_15 とかあるわけなんですよねぇ…
まあ初回起動時にどれ使うって選択させる必要があるのかな。
ついでになるべく簡潔にまとまるように考えて書いてるんだぜ?
見ないなら見ないでいいけど、わからなかろーがなんだろうが何も聞くなっての。
まあ、ここでの文章は色々抜けがあるからいいっちゃいいけどさ。
ことわざで1を聞いて10を知る、というのがあるけどそれはまだ出来なくはないと思うんだ。
だって、1を聞いて2を予想し、3に繋げて・・・内容次第では出来ると思うんだ。
でもさ、10だけ聞いて分かる人っていないと思うんだ。
それで全貌を把握なんてできないと思うんだ。
足し算なのか引き算なのか、掛け算なのか割り算なのかさえ分からないんだぜ…?
絶対無理。
誰か通訳plz
登録:
投稿 (Atom)