投稿

ラベル(Java)が付いた投稿を表示しています

Google Plugin for Eclipse 4.3(Kepler)でAppEngineのみのプロジェクトを作ると実行出来ない件の対処

Google Plugin for Eclipse 4.3(Kepler)で、プロジェクト作成時にGWTのオプションを外したAppEngineのみのプロジェクトを作って「Run As」や「Debug AS」すると、コンソールに次のようなメッセージが出てローカルサーバーが起動しなくて困った(´・ω・`) Usage: <dev-appserver> [options] <app directory> 「Debug AS」>「Debug Configurations」に行き、左から該当するWebApplicationを選んで、右の「Arguments」タブを開く。 すると、このようになっているはず。 --port=8888 testapp.TestApp /Users/user/Documents/workspace/testapp/war これをコンソールのエラーメッセージと見比べてみれば間違いが分かるだろう。 つまり、「testapp.TestApp」が余計だ。これを削除してこのようにする。 --port=8888 /Users/user/Documents/workspace/testapp/war これで走ったよ\(^o^)/

Javaアプレットの役割は終わったんだろうな・・・

日経13.02.20夕 アップルにサイバー攻撃 【シリコンバレー=岡田信行】米アップルは19日、同社の従業員が業務に使っている複数のパソコンがサイバー攻撃の標的となったと明らかにした… 閲覧ソフトに使われた米オラクルのプログラミング言語「Java(ジャバ)」の弱点をついたものと判明した… アップルは攻撃を受けたパソコン「マック」を隔離… ブラウザ上でのJava、つまりJavaアプレットの脆弱性を利用されたらしい。しかし、Mac OSまでやられたなんて・・・もはやMacも安全ではないなと改めて思った。 この件についてはこちらのブログが非常に詳しい。 ハッカー攻撃を受けたアップル | maclalala2 … Java のアップデート 「OS X Lion 以降、出荷される Mac に Java はインストールされていない。さらに、Java が 35 日間使用されなかった場合は自動的に無効にする追加的安全措置がとられている。すでに Java をインストールしている Mac ユーザーを保護するために、Java のアップデート版を今日リリースした。このツールは Mac をチェックして、マルウェアが見つかった場合はそれを除去する」とアップルは述べている。 … 確かに最近、OSのアップデートでJavaの更新が出ていた。どんな更新をしたのかな?とは思っていたけれど、それ以上は調べなかった。 そこで、改めてAppleのサイトをみてみると・・・ Java for Mac OS X 10.6 Update 13 … this update will configure web browsers to not automatically run Java applets. Java applets may be re-enabled by clicking the region labeled "Inactive plug-in" on a web page. If no applets have been run for an extended period of time, the Java web plug-in will deactivate. … つまり、Java自体の脆弱性を解決したというより、単にJava...

何コレ?Javaの演算子「~」

Androidでこんなコードが出てきた。 Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT); intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK); 問題は「~Intent.FLAG_ACTIVITY_NEW_TASK」の「~」。 長年Javaプログラミングをしてきたつもりだけど、こんなの見たことない。何コレ? Intent.FLAG_ACTIVITY_NEW_TASKはintなので、ビット演算子かなぁとは思ったけど・・・ Java 基礎知識( 演算子 )【 Okapi Project 】 ビット反転の演算子だって。他のビット演算子は知ってたし実際に使っても来たけど、これは知らなんだ。 intのビット反転をする必要を感じたことなかったもんなぁ・・・まだまだ未熟者だわ。

AndroidのボタンをSVGで描画するには?

イメージ
なぜSVGか? FlexだとボタンのスキンをFXG、つまりベクターで描画することもできる。しかし、どうやらAndroidのボタンはビットマップで描画するしかないらしい。 ベクター描画の何が便利かというと 解像度ごとにファイルを作らなくて済む(DPIからサイズを計算してリサイズ) 拡大しても画質が劣化しない 形状が同じで色違いのファイルを作らなくて済む いちいち9patchの設定をする必要がない といったところだろうか。 特にAndroidの9patchツール(draw9patch)を使ってみて痛感したのだ。これは現実的ではないぞと。オリジナルが少しでも変わるたんびにあのツールで9patchの設定をしなければならないのか?1つ2つならまだしも、数が多くなってきた時は?しかも3つの解像度ごとに作るのか?頭くらくら_| ̄|○ もちろんAndroidでもクラスをつくってプログラムでグラフィックスを描画すればできるが、複雑な形状を描画するプログラムを書くのは非効率だし面倒だ。ていうか、単純な形状でも書きたくない(^^); こういうのはイラストレーターとかでベースを作った方が早いよね。 AndroidでSVGは描画できるのか? ということで、何とかAndroidのボタンをSVGで描画できないものか調べてみた。 はじめはJavaでSVGだから、やっぱり Batik かなぁと思ったが、解凍してみて思った。やっぱりあれは重すぎる。 何とかAndroid向けの軽量なものは無いかなぁと調べると、こちらの記事で「svg-android」というライブラリがある事を知る。 Svg-android | アカベコマイリ svg-android - SVG parsing and rendering for Android - Google Project Hosting 最近は「svg-android2」というオリジナルからフォークして改善したライブラリもあるみたい。 Introduction - svg-android-2 - Purpose and Roadmap for the svg-android-2 project - Enhanced SVG library for Android devices - Google Pr...

Android上での標準XML API・JDOM・DOM4Jの速度比較

イメージ
Android上で 標準XML APIを使用してのXML操作はかなり遅いと感じた ので、 JDOM(1.1.3) や DOM4J(1.6.1) ならどうなのか?と調べてみた。 結論からすると、今回の条件では DOM4Jが最速 っぽい。 このような計測アプリを作って2.2(API Level 8)のエミュレーター上で動作させた。 Eclipseプロジェクトファイル XMLAPICompare.zip (1.3MB) 計測結果 各APIでの処理を5回計測して平均を出した。別のAPIを計測するたびにアプリを起動し直した。単位はmsec。 起動直後の処理が遅い どのAPIも起動直後の処理が遅く、2回目以降は劇的に速くなることがわかる。これはAPIを動作させるためにたくさんのクラスをロードしているからだと思う。 標準APIはDOMをテキスト化する処理をするために多くのクラスを読み込むようだ。 JDOMとDOM4Jはエレメントを取得するところで、どちらもXPath関連のライブラリを読み込むのに時間がかかっているのだと思う。 XMLテキストをDOM化する処理 リソース(res/raw/roundbutton.svg)にある、ごく単純なXMLをDOM化する処理をさせている。 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="layer1" x="0px" y="0px" width="108px" height="36px" viewBox="0 0 108 36" enable-background="new 0 0 108 36"> <g id="roundbutton...