Tips 領域 New 領域 :ヒープ領域 寿命の短いオブジェクトが配置される New 領域が不足すると Scavenge GC が頻繁に行われる Old 領域 :ヒープ領域 寿命の長いオブジェクトが配置される Old 領域が一杯になると Full GC が行われる Permanent 領域 :非ヒープ領域 クラスやメソッドの情報が格納される Permanent 領域 が不足しても Full GC が行われる 起動オプション 各値の初期値は、各値の最大値と同じ大きさに設定すること -Xms=256M -Xmx=256M -XX:PermSize=128M -XX:MaxPermSize=128M -Xms ヒープ全体の初期値 -Xmx ヒープ全体の最大値 -XX:NewSize New 領域の初期値 -XX:MaxNewSize New 領域の最大値 -XX:PermSize Perma
Java のヒープ領域及び 非ヒープ領域、メモリ管理について簡単に説明いたします。 ヒープやヒープサイズはガーベジ・コレクション:GC ( Garbage Collection ) と密接な関連があります。以下のページも合わせて参照ください。 ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法 Java のオブジェクトは、大きく分けて、New、Old 、Permanent というメモリ領域で管理されます。 新しいオブジェクトを格納するのが New 領域と呼ばれ、古いオブジェクトを格納するのが Old 領域と呼ばれます。 Permanent 領域にはクラスやメソッドなどの情報が格納されます。 ( これらは Permanent Generation, Tenured Generation, Young Generation とも
Java OutOfMemory が出る † 主にメモリリークが原因。(参照の解放忘れによるもの。) あるいは巨大データの処理によるもの。 メモリ使用量を確認する。 処理するデータが妥当なサイズか、メモリ上に展開しても問題ないものかを確認する。 ↑ 暫定対応 † Java VM 起動オプションの -Xmx (Java 最大ヒープサイズ)を増やす。 -Xmx512m -Xms (Java 初期ヒープサイズ)を -Xmx と同容量にするような設定も見受けられるが、 安易に増やすと初期メモリ確保の時に問題が出る可能性があるので注意。 物理メモリの 1/2 から 3/4 までの値が望ましいとされる。 巨大データ処理、大量処理以外の場合、たいていはメモリリークなので、安易にヒープ領域を増やしても意味がないことに注意。 ↑
プロジェクトの概要 本プロジェクトではQRコードのデコード/エンコードライブラリをGPL v2の下で開発・配布します.本プロジェクトの究極の目標は QRコードに埋め込まれた全ての情報を世界中のプログラミング可能な機器で自由に利用できるようにすることです. QRコードはJIS-X-0510,またISO/IEC18004の下で定められた工業規格です . 現在の開発状況 Java(J2SEおよびJ2ME MIDP2.0/CLDC1.0) で実装されたデコーダが利用可能です リードソロモン符号とBCH符号による誤り訂正をサポートします 携帯電話のカメラなどで撮影された画像の読み取り性能を向上させるために,いくつかの前処理を行います ノイズの除去 QRコードの画像上の傾き自動認識 いくつかのサンプルアプリケーションを提供します CUI GUI MIDlet (携帯電話版Javaアプリケーション) J
Javaで書かれたQRコード読み取りライブラリを発見。現在進行中のプロジェクトのようです。さっそく2日がかりで導入しました。色々とクセがあるので、以下に列挙。 ライブラリクラス内でイレギュラーな処理順序となることがあるようで、その時に例外が発生する。DecodingFailedExceptionに関してはthrows宣言されているが、他にも2種類の例外を確認。最低でもExceptionでcatchしておかないとスレッドが停止する。 QRCodeDecoderを使用するには自前でQRCodeImageインタフェースを実装したクラスを作成する必要がある。画像の幅、高さ、画素ごとのRGB値(グレースケールでなくてよい)を返す必要があるが、BufferedImageを作ってしまうのが楽。 QRCodeDecoderのdecodeメソッドは1回しか使えない。読み取り試行回数を内部でカウントして回数制
みなさんこんにちわ!にゃんたこすです。 「USBカメラでいかに遊び倒すか?」についてまだまだいろいろ実験中です。 さて、今回の記事のテーマは、 「USBカメラを使ってバーコードを読み取りたい!」 ということになります。 調べてみると、USBカメラ(WEBカメラ)を使ってバーコードを読み取りするという試みは、結構なされているようですが、Javaでそのような機能を実装しているのは、あまりないようです。 なので、作ってみました! ■実行例 赤い線ライン上をスキャンしてバーコードを読み取っています。 読み取った結果は、左下のコンソール部分に出力されます。 この例では、正しくバーコードを読み取れていることが分かります。 複数のバーコードでいろいろと試してみましたが、意外と正確に読み取りできました! プログラム等一式(プロジェクト)のダウンロードはこちらから。 ※注意: USBカメラは手動フォーカス
はじめに 皆さんは、JavaでCSVを扱うときに苦労した経験はないでしょうか。 CSV(Comma-Separated Values/Character-Separated Values)はデータをカンマ(,)やタブなどで区切って並べたテキスト形式のデータで、表計算ソフトやデータベースなどとのデータ交換のしやすさや可読性のよさなどから、古くから広く使われているデータ形式です。 このCSVのデータ形式には、さまざまな「方言」があり、データの中にカンマ(,)が入っている場合や、データをダブルクォーテーション(")で囲む場合、データの中にダブルクォーテーションがありそれがエスケープされている場合、データの中に改行がある場合などが存在します。また、CSVのデータ構成にもさまざまな種類があり、データの先頭行をヘッダとする場合や、コメント行や集計行がある場合、日時データを日付と時刻それぞれ別々の列とす
はじめに 今やWebのフレームワークと言えば、そのほとんどが「RoRタイプ」です。RoR(Ruby on Rails)がWebの開発に与えた影響は非常に大きく、その後生まれたフレームワークの多くがその影響を受けています。 しかし、Javaの世界に関しては、RoRはなぜか素通りしてしまいました。既にStrutsというデファクトスタンダードがあったために新しいMVCフレームワークが割り込む余地があまりなかったのか、あるいはLL(ライトウェイト)言語でないとRoRなスタイルは作りにくかったのか。ともあれ、その後、長い間、Javaでは「いわゆるRoRタイプ」と言えるフレームワークは登場しませんでした。 その流れを変えたのは、Groovyです。Groovyの登場により、JavaでもLL言語のような小回りの聞くコーディングが可能となりました。そのおかげで、ようやくJavaの世界にも遅まきながら新しい世
eclipse/pluginsの中にcom.sun.jna_3.0.5なるものが。class郡を覗くとJNIを呼ぶためのラッパっぽい感じなので気になって検索かけたら発見。https://jna.dev.java.net JNIなしでネイティブライブラリにJavaから直接アクセスできるものらしい。対応OSも充実している*1。 JNAはかなり便利にできている。もうJNI使わなくて良し。ライブラリに対応するインターフェースを用意して、その中に関数を定義しておき、そのインターフェース型を指定してネイティブライブラリをロードするという芸当ができる。メソッドに勝手にマッピングしてくれて実装したクラスインスタンスを作ってくれちゃうのだ! 以下はWin32APIのメッセージボックスだけの例。 import com.sun.jna.Native; import com.sun.jna.WString; im
Apache CXF を、Eclipse の WTP から Tomcat v6.0 で動かしてみる。 ■ Eclipse の準備SOA Tools Platform プラグインをインストールしておく。update site は "http://download.eclipse.org/releases/galileo"。Servers ビューで、Tomcat v6.0 サーバを構成しておく[Preference]から[Web Services]→[CXF 2.0 Preferences]の[CXF Runtime]タブで、CXF Home に CXF のインストールディレクトリを指定。続けて、[Server and Runtime] で Tomcat v6.0 とApache CXF 2.xを指定■ プロジェクトと WSDL ファイルの作成Dynamic Web Project を作成する
デジカメの画像ファイルには撮影日付とか露出とかいろんな情報が写真と一緒に入ってます(Exif)。が、javaにはこれを扱うAPI(コア)がありません。さまざまなライブラリの中にはExifの情報を便利に扱えるものもありますが、せっかくなので(?)自分でやってみます。といってもホントに全ての情報を取り出そうとすると、デジカメのメーカごとの独自の情報などあってややこしいし、そのための、すぐれたソフトもあるのでここでは触りだけということで。 Exifってなんじゃいな? Exif情報を表示するソフト Exif仕様 バイナリファイルを仕様に沿って粛々と読み込むだけなので、Javaだから特別どうこうというわけじゃない。あんまり面白くもない。。。 なにはともあれmain static long tiffStartPos=12; //簡単に12固定とする static RandomAccessFile fi
これがPerf4Jの理解にどう関係があるのでしょうか。Java向けの優れたロギングフレームワークが広く利用可能になる前の古き悪しき時代、私たち開発者の大部分がロギングステートメントを追加した方法を考えてみてください。System.out.println()を「手軽なデバッガ」 -- ロギング情報を出力するための間に合わせの方法として使いました。すぐに、これでは不十分と分かりました。ロギングステートメントを専用のログファイル(異なる複数のファイルの可能性もあり)に向かわせ、おそらくそうしたログファイルを毎日ロールさせたかったのです。異なるレベルの重要性を異なるロギングステートメントに割り当てる能力や、コードをまったく変更することなく、特定の環境で特定のログステートメントのみを書いたり、異なる環境でログステートメントのフォーマットを変更したりするオプションを求めていました。そのため、log4j
簡単なシステムを実行できる環境を作ろうと、Java+Tomcatをインストールする。 使用したのは、「Java6 Update13」と「Tomcat 5.5」。 両者ともWindowsでインストラーを実行するだけ。とても簡単にインストールできた。 が、さっそく起動しようとすると以下のようなエラーが出てしまった。 [174 javajni.c] [error] 指定されたモジュールが見つかりません。 環境変数の問題かと思って調べても解決しない。と、以下のような情報があった。 http://forums.sun.com/thread.jspa?threadID=5121172 After a few months I've found solution of this problem: When I run tomcat5.exe under Sysinternals File
Tomcat5.5のserver.xmlについての解説です。 項目の中にはまだ実際に機能していないものも多数あります。 また、今後新たな項目が追加される可能性もあります。 要素の親子関係 Server server.xmlのルートになる唯一の要素(Element)です。 className 使用するサーブレットコンテナクラスを指定します。 このクラスは org.apache.catalina.Server インターフェイスを実装している必要があります。 省略すると、org.apache.catalina.core.StandardServer がデフォルトで使用されます。 port このサーバがシャットダウンコマンドを受け取るために待機するポート番号を指定します。 shutdown このサーバをシャットダウンさせる為に使用するコマンド文字列を指定します。 上で指定したポートは、この文字列を
Java で HTTP クライアントを作ってみよう (2) HttpURLConnection クラス Socket クラスでごりごり書くのも悪くはないですが、 実際に使用するプログラムを書くとなると結構つらいものがあります。 より便利な HttpURLConnection クラスが用意されていますので、これを使ってみましょう。 % javac HttpClientHttpURLConnection.java とコンパイルすることで HttpClientHttpURLConnection.class が生成され、 % java HttpClientHttpURLConnection で実行できます。このプログラムは http://www.debian.org/ にアクセスし、 以下のような出力を行います。 レスポンスヘッダ: ETag: ["233112-3ea9-42284510;422
FMJ Project FMJ is an open-source project with the goal of providing an alternative to Java Media Framework (JMF), while remaining API-compatible with JMF. It aims to produce a single API/Framework which can be used to capture, playback, process, and stream media across multiple platforms. Since FMJ is API-compatible with latest JMF, you may use existing JMF codes and run them. However, several ar
皆さん、ビルドツールは何をお使いでしょうか? Java開発におけるビルドツールといえば、Antが有名でしょう。しかし、最近、Antに代わるビルドツールとしてApache Mavenが地道に注目を集めてきています。 本稿では、連載「CoolなEclipseプラグイン」の番外編として、前後編に分けてMavenの概要とEclipse上でのMaven利用をサポートするプラグイン「q4e」を紹介します。 Antに代わるビルドツール「Maven」とは? 「Maven」(メイヴェン、メイヴン)は、Antと同様に、プログラムのコンパイル、テスト実行、パッケージングなどのソフトウェア開発における一連の作業を自動化するためのツールです。ただし、Mavenは、Antにはない以下のような優れた特徴を持っています。 Mavenの特徴【1】高機能なライブラリ管理・依存ライブラリの“自動”追加 プロジェクトに必要なライ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く