Java

Javaでファイルが作成されるのを待って、作成を検知してから次の処理を行う

Javaでファイルが作成されたことを検知して、そのファイルが作成された後に次の処理を開始したい、なんてことがあるかもしれない。 たとえば、外部からファイルが連携されるプロセスがあって、そのファイルができるかどうかをずーーーっと待って、ファイルが…

外部コマンドを実行する

引数にコマンド名を指定すると、外部コマンドを実行することができます。 このサンプルでは、以下のhoge.batというバッチファイル(DOS)を実行してみます。 echo "hoge" type nul > "C:\tmp\emptyfile.txt"type nul > ~ というのは、DOSでファイルを作成する…

SnakeYamlを使ってYAMLファイルからオブジェクトを作る

SnakeYamlというのは、JavaでYAMLをパースしたり、出力する機能を持ったツールです。 以下のWebサイトからjarをダウンロードすることができます。 https://code.google.com/p/snakeyaml/サンプルは以下を見ればたくさんあります。 https://code.google.com/p…

実行環境が変わってもファイルを読み込めるように工夫してみる

Javaでファイルを読み込もうとすると、IOExceptionが出て、ファイルが開けない。 LinuxやWindowsで環境が変わると、ファイルのセパレータが変わるからまたファイルが見つからない。環境が変わると、ファイルの場所も変わってしまう。結果、ファイルが見つか…

数値の変換と比較

■変換についてJavaには数値基本型に対応する数値クラスが用意されている。 基本型 数値クラス java.lang.Boolean boolean java.lang.Character char java.lang.Byte byte java.lang.Short short java.lang.Integer int java.lang.Long long java.lang.Float …

wait()とnotifyAll()を使ってみる。

wait(),notify(),notifyAll()メソッドはObjectクラスに実装されています。 Objectクラスに実装されているわけではありません。それぞれのメソッドの意味は以下のとおりです。 メソッド 意味 wait() 通知があるまでスレッドを待たせる notify() 待ち状態の1…

スレッドのライフサイクルとjoin()メソッドの使い方。

Javaのスレッドにはライフサイクルがあって、そのライフサイクルを押さえることが、Javaのマルチスレッドプログラミングを理解する基本となります。start()メソッドが呼び出されると、スレッドはまず実行可能状態に遷移します。 スレッドはスケジューラによ…

マルチスレッドプログラミングの入門。

最初にプログラミングを学ぶとき、ほぼすべてのサンプルで、そのプログラムはシングルスレッドで動いています。 シングルスレッドというのは、その名の通り、一つだけの処理が順番に実行されています。スレッドとは、本来は英語で「糸」という意味があります…

Java Managed Bean

JBoss関連の情報を調べていたので、断片的な情報をまとめてみる。 メモのようなものなので、あまりカッコイイ記事ではないけれど。しかもなんか古いし(笑) MBeanとは、ManagedBeanの略。 MBeanはJavaBeansと似た構造のJavaのクラスで、setterやgetter、opera…

JSP/Servletアプリでvalidatorの機能を使う

Servlet/JSPの環境で、入力値のチェックを行ってみます。 ここでは、バリデーションという仕組みを利用します。 この記事では、バリデーションの他に、DispatcherServletパターン、setAttributeでインスタンスを設定して、JSPで表示する方法のサンプルとして…

カスタムタグとJSTLについてまとめ

カスタムタグというのは、JSP内での処理をタグの形で定義し、処理できるようにしたものです。 <% if (i > 10) { // } %> みたいな処理を、 <c:if test="${i > 10}"> 10以上です </c:if> みたいに、再利用しやすくしたものがカスタムタグです。 JSPのコードが見やすくなり、Javaプログラマ以…

JBoss4をフォルダ構成について

jboss-4.2.3.GA直下のディレクトリ bin:起動/停止スクリプトを含みますclient:外部クライアントアプリケーションがJNDIを通じてアクセスするためのJARファイルを含みますdocs:さまざまなドキュメントがあります。lib:JBossを構成するJARファイルがあります。…

Javaのdouble型、float型。浮動小数点数とは。

前回の記事では整数について扱ったが、今回は浮動小数点数について。Javaは実数を表す型として、floatとdoubleを提供している。 実数とは、プラスマイナス・0・整数・分数・小数、有理数やルートや円周率などの無理数全てのこと。整数はlongとかint型で表現…

Javaで整数を使う。intとlong

Javaの基礎を復習。 パーフェクトJavaの「数値(1)」の章を参考にさせていただきました。整数の型と取りうる値の範囲は以下のとおりだが、longとかになるとわけわからない数になるので、順番だけ覚えておけばいいと思う。 整数の型 値の範囲 ビット長 byte -1…

NetBeans IDE7.4でJavaEEプロジェクトを作成し、「Hello World」を表示させるまで

以下のリンクを参考に順番にやってみる。 ただ「Hello World」を表示させるだけの単純な作業。 でもNetBeans初めて使うから、一応メモ(わかってる人にはくだらない記事です) https://netbeans.org/kb/docs/javaee/ecommerce/setup-dev-environ.html#create1…

httpclient-4.3.1を使って、プロキシ越えでHTTPリクエストするサンプル。HTTPS(443ポート)でリクエストを飛ばすサンプルも。

今日は年末の飲みの影響で、若干酔っているので、サンプルだけ(読んでくれてる人には関係ないと思うけど、ごめんなさい) サンプルはちゃんと動きます。まずは、プロキシなしでリクエストする場合のサンプル。 package sample.http; import java.io.InputStre…

Javaでマルチスレッド。スレッドの状態のまとめとjoin()メソッドを使ってみるサンプル。

昨日の勉強の続き。 スレッドのライフサイクルについて。Javaのスレッドには様々な状態がある。 一つ一つの状態を見てみよう。 新規(New) インスタンス化された直後の状態で、まだ開始されていない状態のこと。 準備完了/実行可能(Ready/Runnable) Threadオ…

Javaでマルチスレッドプログラミングの基本の復習。extends Threadとimplements Runnable。

スレッドって何? プログラムにはアプリケーションの命令を最初から1つずつ順番に実行するための実行制御がある。 この実行制御の流れを実行スレッドと呼ぶ。で、複数のスレッドを同時に実行させることをマルチスレッドプログラミングという。マルチスレッド…

Javaでシリアライズ、デシリアライズするサンプル

シリアライズとは、オブジェクトをどこかに書き込む処理のことをいう。 シリアライズされたオブジェクトを読み取ってプログラム中に戻す処理をデシリアライズという。シリアライズの目的は、オブジェクトの状態を保存すること。そして、後でその状態を復元す…

Java Commons Codecを使って、MD5でハッシュ化してみる。

タイトルが不自然な日本語だけど、要はJavaでMD5を使って文字列をハッシュ化してみようという話。その背景としては、はてなAPIのページに関心を持ったため、ちょっとずつ色々試そうかと思ったこと。自分はあまりネットサービスを使いまくったりはしないんだ…

はてブでコメントをいただいたので、さっそくSpring Frameworkでリフレクションを使ってる部分を読んでみた。

昨日リフレクションを勉強して記事を書いたら、 id:nemobaさんがアドバイスをしてくださった。 SeasarとかSpringのコードも見ると、利用方法とかもわかってさらに便利。まずは利用してみれば、見ることになるから。 ありがとうございます!早速、Spring Fram…

使っているJDKのバージョンを取得するサンプル

Spring Frameworkのソースを読んでいて勉強になったので、抜粋して使ってみる。 「org.springframweork.core」パッケージの、JdkVersionクラス。Authorは俺の中で教科書の太字的な人物であるRad Johnson様。JavaのバージョンをSystem.getProperty("java.vers…

Javaのリフレクションを使ってクラスオブジェクトを生成したり、メソッドを呼び出すためのサンプル

※追記 追加記事を書きました。 はてブでコメントをいただいたので、さっそくSpring Frameworkでリフレクションを使ってる部分を読んでみた。 ※追記ここまでリフレクションとは、実行中に型情報を取得でき、方そのものを操作対象にできる仕組みのことである。…

Javaのセットは集合の概念をプログラミングに持ち込んだもの。サンプルを書いてみる。

セットとは、重複のない要素の集まりのこと。 データは順不同で管理していて、重複オブジェクトの保持はできない。せっかく「CANSAY NUboard」 を買ったので図を書いてみると、こんな感じ。 Setインターフェースを実装しているクラスは以下の通り。 Setイン…

Javaの拡張for文の書き方とイテレータの書き方のサンプル

拡張for構文って何? リスト、配列や他の任意のコレクションの各要素を取り出して処理したいときに使う。 要素オブジェクトを先頭から1つずつループ変数に代入して、繰り返し処理を行うことができる。拡張for構文は、Java5から導入された。 これによって、定…

JBoss ASにアプリケーションをデプロイする際の用語や仕組みのメモ。WAR,EJB-JAR,EAR,SARとは何か。

デプロイって何? WebアプリケーションやEJBファイルを、JBoss AS(アプリケーションサーバ)にコピーして使用できるようにすることをデプロイという。 英語にするとdeployで、配備する、という意味がある。JBoss ASでは、アーカイブファイルを所定の位置に置…

JBossでJMSを使って、Queueからメッセージを受け取るサンプル

前回の記事でJBossを使ってJMSのメッセージをキューに送信するところまで実装した。 今度はそれを取り出すサンプルを作ってみた。QueueConnectionFactoryとか、QueueのJndi名はベタ書きしているが、本来は外出しするべきだ。 まずはMBeanサービスを作るため…

JBoss4でJndi lookup、キュー(Queue)の取得、JMSメッセージを送信するexample

登録されているJNDI名を調べる jmx-consoleで「service=JNDIView」をクリックする。 java.lang.String listXML()をinvokeする。 すると、JBossに登録されているJNDIの一覧がブラウザに表示される。 たとえば、こんな感じ。 これらを使ってJNDIのルックアップ…

JMSについてメモ

Java Messaging Serviceとは JMSはクライアントから送信されたメッセージをサーバに蓄え、そのメッセージのヘッダに書かれた宛先に配送するサービスのこと。 宛先のサーバがダウンした場合でも、再度メッセージを配送してくれる。 分散システムの構築という…

JBossにデプロイするファイルの説明。WAR,EJB-JAR,EAR,SARについて。

デプロイ JBoss ASにデプロイできるアプリケーションは4つある。 WAR: Webブラウザから利用するWebアプリケーション。拡張子は.war。Web ARchiveの略。 WARファイルのルートディレクトリはアプリケーションのコンテキストルートと呼ばれる。 これはデプロイ…