タグ

javaに関するmtoyoshiのブックマーク (34)

  • 第19回 Javaプログラムから外部プロセスを起動するための「Apache Commons Exec」 | gihyo.jp

    Apache Commons Execとは Javaプログラムから外部プロセスを実行する一般的な方法としては、標準ライブラリに用意されているjava.lang.ProcessBuilderクラスや、java.lang.Runtime.exec()メソッドがあります。しかしこれらのクラス/メソッドによるサポートは限定的であり、あまり使い勝手が良くないことでも知られています。「⁠Apache Commons Exec」(⁠以下、Commons Exec)は、そのような標準的な方法に変わる外部プロセスの起動手段を提供してくれるオープンソースのライブラリです。特にプロセスに対する適切な入出力処理が、比較的簡単に記述できるようになっている点が大きなメリットです。 Commons Execはこのページよりダウンロードできます。稿執筆時点での最新版はバージョン1.1です。ダウンロードしたファイルを解凍

    第19回 Javaプログラムから外部プロセスを起動するための「Apache Commons Exec」 | gihyo.jp
    mtoyoshi
    mtoyoshi 2011/11/05
    外部プロセス起動はcommons#execで。
  • テスト駆動開発チートシート - やさしいデスマーチ

    TDD(テスト駆動開発)のチートシートを作ってみた。 TDDBCでid:t-wadaさんが話している内容とかテスト駆動開発入門から引っ張ってきています。 ダウンロードはこちらからどうぞ。 PNGイメージ: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.png PDFファイル: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.pdf 追記 印刷・再配布などはご自由にどうぞ。 もし、元データ(OmniGraffle)が欲しいという人は、コメント欄かTwitter経由で教えていただければ差し上げます。 追記2 このチートシートは、OmniGraffleで作りました。他に使えそうなツールとしては、イラレとか。Visioでもたぶん作れると思います。

    テスト駆動開発チートシート - やさしいデスマーチ
  • Apache TomcatとHTTPクッキーにまつわる騒動 - GeekFactory

    Apache Tomcat 5.5.26(6.0.16も同じ)で、HTTPクッキーの取り扱いについて大きな仕様変更が行われました。ここでは仕様変更の内容と影響範囲を考察します。 HTTPクッキー 簡単に復習しましょう。WebブラウザがWebサーバから以下のHTTPヘッダを受信したとき、Webブラウザは test というクッキーを記憶します。 Set-Cookie: test=nullpo; Expires=Wed, 08-Oct-2008 14:03:16 GMT; Path=/クッキーは NAME=VALUE という形で表現されます。連想配列と同じ。 NAME VALUE test nullpo 一度クッキーを受信すると、ブラウザは当該URLにアクセスする度に、以下のHTTPヘッダを送信するようになります。 Cookie: test=nullpoこのように、クッキーはWebサーバがブラウ

    Apache TomcatとHTTPクッキーにまつわる騒動 - GeekFactory
    mtoyoshi
    mtoyoshi 2011/03/31
    cookieの罠
  • マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌

    長い文章になってしまったので、概要だけ先に書きます。 以下のJavaプログラムは、常に上から下に順番に命令が実行されると思いますか?つまり、aに1が格納された後に、bに2が格納されると思いますか? 実は場合によってはこの実行順序が入れ替わる場合があります。これはJavaの言語仕様として定義されていることです。これを考慮しないと信頼性のある並行処理は実装できません。 気になる人は以下を読んでみてください。 a = 1; b = 2; すでにインターネットは社会インフラ化しています。ソーシャルネットワークで多くの人とコミュケーションやコラボレーションできる時代で、個人が情報を作り消費することは当たり前になってきています。そして、インターネット上のコンテンツは増加の一途を辿っています。「情報爆発」なんて言葉も耳慣れた言葉になりましたが、その問題解決のためにMapReduceなどの分散処理技術に注

    マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
  • Java使いをScalaに引き込むサンプル集 | mwSoft

    前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 記事では、ScalaJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaJava

    mtoyoshi
    mtoyoshi 2011/02/14
    Scalaいいねぇ!
  • Javaジェネリクス再入門 - プログラマーの脳みそ

    ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクションAPIが挙げられる。java.util.Listとかjava.util.Mapとかのデータを格納するタイプのユーティリティクラスのことだ。 2004年にJavaのバージョンが5.0となるまでは、Javaにはジェネリクスの機能はなかった。なので、Listにデータを格納し、取得する場合は List list = new ArrayList(); list.add("hello!"); String str = (String) list.get(0); といったソースコードになる。 add()の引数はObject型で宣言されており、どんな参照型でもadd()することができた。 get()の戻り値もObject型で宣言されておりキャストが必要だった。このキャストはプログラ

    Javaジェネリクス再入門 - プログラマーの脳みそ
    mtoyoshi
    mtoyoshi 2010/11/07
    String string = this.<String>xxx("hello"); ってのを忘れてた。Effective Javaまた読まないとなー。
  • Java EE 6/Glassfish V3についてのまとめ - しんさんの出張所 はてなブログ編

    そういやこれかいてなかったな。 JavaEE 6をずっとおってきて過去にいろいろと書きました。Servlet API 3.0はweb.xmlすらオプションになったり、自分で必要なものをフィルターやサーブレット等に設定するコードを自由に書けるようになったりしたのがでかいです。ELにメソッドが使えるようになったのもかなりきてますね。 まずはGlassfish V3をお試しあれ。最も軽いJava EEアプリケーションサーバーです。 高速なデプロイ Glassfish V3はEclipse、NetBeans、IDEAともに対応していてすごい簡単に開発が出来るのがわかると思います。え?JavaEEサーバーは重いって?300msとかでデプロイできる環境が遅いというのならばそうなのでしょう。デプロイ時間はTomcatとかわりません。それどころかデプロイするファイルが減る可能性もありますので軽くなる場合も

    Java EE 6/Glassfish V3についてのまとめ - しんさんの出張所 はてなブログ編
    mtoyoshi
    mtoyoshi 2010/08/29
    JavaEE6まとめ
  • Servlet 3.0 の新機能概要

    2010年3月14日 at 2:26 午前 1件のコメント Servlet 3.0 の新機能をプレゼン形式でまとめてみました。個々の機能に関する詳細は別途記載する予定ですが、ここでかんたんに概要を説明します。 Servlet 3.0 は Servlet 2.5 からかなり多くの改良が施されています。 Java SE 5 から利用可能になった、アノテーションを利用し、今まで web.xml に記載していた Servlet や Filter 等の設定をアノテーションで記載できるようになり開発生産性が大幅に向上しました。 また、プラガビリティの向上として、外部のフレームワークやライブラリの設定を web.xml 以外のファイル (web-fragment.xml) に記載できるようになったため、web.xml の肥大化を抑制でき、またフレームワークの設定管理が容易になっています。 その他では S

    Servlet 3.0 の新機能概要
    mtoyoshi
    mtoyoshi 2010/08/24
    javaEE6
  • モダン(かもしれない)なEclipse環境(Java)の構築方法 - wyukawa's diary

    「モダンなEclipse環境の構築方法」とかね。 2010-07-21 - marsのメモ 僕が書くのも場違いな気がするけど、とりあえず書いてみるよ。 Webアプリ作るという前提だとまずEclipse IDE for Java EE Developersをダウンロードしてインストールする。JDKは別途ダウンロードする。Tomcatも別途ダウンロードする。 JDKはWindowsの場合はデフォルトではProgram Files以下にインストールしようとするがパスに空白が含まれてるのが嫌なのでC直下とかにする。 Tomcatもインストーラを使わずにZIP版を解凍して、パスに空白が含まれていない場所にインストールする。 プラグインはSubversionクライアントとしてSubclipseを、プロパティエディタとしてちょま吉をインストールする。ここまでは必須。 DB使うようならDBViewerもイ

    モダン(かもしれない)なEclipse環境(Java)の構築方法 - wyukawa's diary
    mtoyoshi
    mtoyoshi 2010/07/31
    eclipseの設定
  • Java EE 6の話 -ありえるえりあ勉強会- — ありえるえりあ

    Java EE 6の話 -ありえるえりあ勉強会- 「ありえるえりあ勉強会@溜池山王 -第1回ディープすぎるJava・・・-」(http://atnd.org/events/4261)での講演資料です。 HTML化したプレゼン資料は添付のjavaee6.tgzです(内容は同じです)。

  • エラーメッセージの抑制 - たぷつきません

    tomcatをデフォで使うと、起動時と終了時に以下のようなログが出ます。 情報: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ... : 情報: Failed shutdown of Apache Portable Runtime 1つの対処としてはserver.xmlのAprLifecycleListenerをコメントアウトしてそもそもデフォでは使えない機能なのだから使わない…という手もあります。 <!--Listener className="org.apache.catalina.core.AprLifecycleListener" /-->ソースがあったので探し当

    エラーメッセージの抑制 - たぷつきません
    mtoyoshi
    mtoyoshi 2010/05/06
    tomcatで不思議なログが。The Apache Tomcat Native library which allows optimal performance in production environments was not found on the
  • ソフトウェア品質の12の属性

    システム開発において「品質の向上」という標語がしばしば掲げられますが、 「品質の属性」については無頓着なケースが多いのではないでしょうか。 ひとくちに品質といっても多様な属性があります。 顧客と品質の話で揉めたことはありませんか? 品質には多様な属性があり、単一の軸で良しあしを決められないという側面があります。 そのため、単に「品質」と言ってしまうと認識に齟齬が生じるのです。 Karl E. Wiegers氏が著書 「ソフトウェア要求」 で挙げた、すべてのプロジェクトが検討すべき12の属性は以下のとおりです。 可用性availability 動作可能時間の指標。システム故障までの平均時間MTTF(Mean Time To Failure)を 平均修復時間MTTR(Mean Time To Repair)とMTTFの合計で割った値。稼働率とも呼ばれる。 効率性efficiency 同じ処理性

  • JDBCメモ(Hishidama's JDBC Memo)

    JDBCは、Javaでデータベース(RDB)にアクセスする為のAPI。 テーブルやビュー、ストアドプロシージャ等にアクセスできる。 JDBCとは商標(つまり固有名詞扱い)なのであって、何かの略というわけではないとのこと。 「Java Database Connectivity」の略だというのが一番広まっているらしいけど、まぁどう考えてもODBC(Open DataBase Connectivity)のJava版、という感じだし。

    mtoyoshi
    mtoyoshi 2010/02/03
    ojdbc5.jarとか
  • JavaはCよりも速い!?--驚異の"-server"オプション

    2002年11月8日 11月3日にお伝えしたバブルソートによるJavaのパフォーマンステストだが、状況によってはJVMの起動オプションを変えることで、通常の数倍の実行速度を実現できることが、新たに明らかになった。 Java VMの起動オプション Javaのアプリケーションを実行するときは、javaコマンドを介してクラスを指定するが、実はjavaコマンドには起動オプションがあり、その設定により異なった動作をすることが分かっている。 オプション名機能 Java HostSpot Client VMという、クライアントアプリケーション用のバーチャルマシンを起動する。アプリケーションの起動時間の短さと、必要なメモリ量の少なさを特長とする。こちらがデフォルトなので、このオプションをつけなくてもこちらのJVMが選択される。

  • ガベージコレクタの仕組みを理解する

    GCを適切に行わせるためのヒープサイズの設定 JVMにGCを適切に行わせるにはヒープサイズを適切に設定(New領域サイズ、Old領域サイズ、領域サイズのバランスなど)する必要があります。当然、適切なヒープサイズはアプリケーションに依存します。一般にヒープサイズが小さいとGCが頻発してアプリケーションのパフォーマンスが低下します。さらに、ヒープサイズが必要量を下回る場合はOutOfMemoryErrorが発生してアプリケーションが停止してしまいます。一方、ヒープサイズが大きいと、GCの起動回数は減りますが、GC1回当たりの処理時間、すなわちアプリケーション停止状態が長くなり、アプリケーションの応答時間に問題が出る場合もあります。システムの物理メモリのフリー領域が不足するまでヒープサイズを大きくすると、物理メモリからスワップ領域へのページングが起こってしまい、かなりのパフォーマンスが劣化する可

    ガベージコレクタの仕組みを理解する
    mtoyoshi
    mtoyoshi 2009/12/03
    GC、チューニング
  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
    mtoyoshi
    mtoyoshi 2009/12/03
    チューニング、レスポンス、GC
  • Executing scripts on a remote machine - Marigan's Weblog

  • Java Concurrency and Multithreading Tutorial

    Java Concurrency is a term that covers multithreading, concurrency and parallelism on the Java platform. That includes the Java concurrency tools, problems and solutions. This Java concurrency tutorial series covers the core concepts of multithreading, concurrency constructs, concurrency problems, costs, benefits related to multithreading in Java. The concurrency and multithreading features in Jav

    Java Concurrency and Multithreading Tutorial
    mtoyoshi
    mtoyoshi 2009/09/20
    スレッド
  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
    mtoyoshi
    mtoyoshi 2009/09/17
    ibm developer worksのjavaまとめ
  • jconsole - くろのまったりシステム開発日記。

    以前メモリ状況を確認するのに、「visualgc」というツールをご紹介しましたが、J2SE5.0より、標準的にメモリ状況を確認できるツール「jconsole」が同梱されていました。 まず起動時のJVM引数に、 -Dcom.sun.management.jmxremote を追加しておきます。 で、そのJVMのプロセスIDをjpsコマンドで確認します。 C:\jps 3856 Jps 4396 Bootstrap プロセスIDが4396と分かったので、以下のコマンドを実行します。 C:\jconsole 4396 これで起動します。簡単ですねー。 jconsoleは以下のような画面です。 いろいろな情報が取得できますので、興味をもたれたかたは是非試してみてください。 また、J2SE6.0では、JVM引数へのパラメータを渡さなくてもjconsoleが使用できるらしいですよ。

    jconsole - くろのまったりシステム開発日記。
    mtoyoshi
    mtoyoshi 2009/08/27
    jconsole