タグ

javaに関するhatehate331000のブックマーク (69)

  • Javaで使えるSSHライブラリ - CLOVER🍀

    最近、仕事JavaからSSHを使用することが多いのですが、ちょっとどんなライブラリがあるか調べることになりまして…せっかくなので、結果をまとめてみることにしました。 割と有名どころが多いので、知っている方はそれほど大した情報にはならないと思いますが…。 では、いってみましょう。 JSch これが1番有名なライブラリではないでしょうか?妙にバージョンが低い割には、Ant、Eclipse CVSプラグイン、Maven Wagonなどで利用されているようです。 名前 JSch プロトコルバージョン SSH v2 最新バージョン(2012/08/18時点) 0.1.48 利用可能な主な機能 SSH、SFTP、SCP(リモートコマンド実行の限定サポート)、公開鍵認証 プロジェクトサイト http://www.jcraft.com/jsch/ Maven Central Repositoryへの登録

    Javaで使えるSSHライブラリ - CLOVER🍀
  • javaで複数のエクセルファイルをgrepのように検索する。 | simultechnology.blog

    あるキーワードを検索する時によくgrepを使うけど、テキストファイルに対してしか有効ではない。エクセルも一応、検索してくれるけど、かなり文字化けとかしててグッチャグッチャになって当然だけど使えない。 複数のエクセルファイルをgrepするツールもあるみたいだけど、仕事javaからエクセルを扱うpoiというライブラリを最近、使ったこともあって、javaで書いてみようと思った。 poiは以下からダウンロードできる。 http://poi.apache.org/download.html また、最近のエクセルファイルの拡張子は「.xlsx」で、エクセル2003までの「.xls」と違っているらしい。エクセルって基的に仕事でしか使わないし、古いエクセル使っているから知らなかった。自分のマシンのエクセルを使って初めて知った。まぁ、だいたいの開発現場ってそんなに新しいバージョンのofficeなんて使

  • 日時を比較する(compareTo) - Calendarクラス

    2 つの Calendar オブジェクトで表される時刻値 (エポックからのミリ秒単位のオフセット) を比較します。 パラメータ: anotherCalendar - 比較対象の Calendar 戻り値: 引数で表される時刻がこの Calendar の表す時刻と等しい場合の値は 0。この Calendar の時刻が引数で表される時刻より前の場合は 0 未満の値。この Calendar の時刻が引数で表される時刻より後の場合は、0 より大きい値 例外: NullPointerException - 指定された Calendar が null の場合 IllegalArgumentException - カレンダ値が無効なため、指定された Calendar オブジェクトの時刻値を取得できない場合 比較するCalendarクラスのオブジェクトを1970 年 1 月 1 日 00:00:00.00

  • TimestampのgetTimeには気をつけよう。 - うさぎ組

    Javaで日時を表すときはあの憎らしいCalendarクラスを使ったり、 素敵なJodaTimeライブラリを使うと思うんですが、 SQLを使うときにjava.sql.Timestampを使うことがあります。 Javaの日時に関連するクラスというのは大抵はgetTime()みたいなメソッドがあって、longを返すようになっています。 で、まぁ日時をこねくり回しているときにたまにgetTime()を使うわけで、Timestampでも同じようにつかってみたのですが、どうもうまくいかなかった。 Timestamp time1 = new Timestamp(2011 - 1900,3,11,12,34,56,123456) Timestamp time2 = new Timestamp(time1.getTime()) println time1 println time2 assertThat(

    TimestampのgetTimeには気をつけよう。 - うさぎ組
  • Java 日付文字列をDate型へ変換 | Web会議の Chat&Messenger

    Java 日付文字列を java.util.Date 型で取得 Java で日付文字列 (フォーマット yyyy/MM/dd ) を java.util.Date 型へ変換するサンプルプログラムです。 サンプルコード /** * 日付文字列"yyyy/MM/dd"をjava.util.Date型へ変換します。 * @param str 変換対象の文字列 * @return 変換後のjava.util.Dateオブジェクト * @throws ParseException 日付文字列が"yyyy/MM/dd"以外の場合 */ public static Date toDate(String str) throws ParseException { Date date = DateFormat.getDateInstance().parse(str); return date; } 実行結果

    Java 日付文字列をDate型へ変換 | Web会議の Chat&Messenger
  • Joda-Time - Home

    About Joda-Time provides a quality replacement for the Java date and time classes. Joda-Time is the de facto standard date and time library for Java prior to Java SE 8. Users are now asked to migrate to java.time (JSR-310). Joda-Time is licensed under the business-friendly Apache 2.0 licence. Features A selection of key features: LocalDate - date without time LocalTime - time without date Instant

  • Javaアプリケーション メモ(Hishidama's Java-Application Memo)

    JavaアプリケーションはJavaソースを(C言語やC++等と同様に)コンパイルし、コンパイルして出来たファイルを実行するもの。 (実際にはJavaで作った全てのプログラムがコンパイル・実行するものだけれども、ここではJavaアプレットやサーブレットと区別する意味で「Javaアプリケーション」と呼んでいる) javacコマンドでコンパイルし、javaコマンドで実行する。 実行は、クラス内のpublic static void main(String[] args)メソッド(あるいは...)から行われる。 JDK1.5から、main()が実行される前にメソッドpremain()を呼ぶこともやろうと思えば出来るようになった。[2007-11-12] コンパイル方法と実行方法 [/2008-12-20] 単一ファイルソースコードの実行 [2018-10-01] クラスパスを指定する例 [/201

  • Jess - Wikipedia

    この項目では、プログラミング言語について説明しています。JR東日グループの駅業務専門受託会社については「JR東日ステーションサービス」をご覧ください。 JessはJavaプラットフォーム向けのルールエンジンである。CLIPSプログラミング言語の上位互換であり、サンディア国立研究所の Ernest Friedman-Hill が開発した。1995年末ごろ最初の版が完成した。 エキスパートシステム開発自動化に適したルールベースのプログラミング言語であり、しばしば「エキスパートシステム・シェル」と呼ばれる。近年、知的エージェントと呼ばれるシステムも開発されているが、それと同様の機能を持つ。 Jess は手続き型パラダイムではなく宣言型パラダイムであり、「パターンマッチング」と呼ばれる処理によって規則群を事実群に適用する。規則は事実群に変更を加えたり、何らかの Java コードを実行したりする

  • Tomcat 7も対応したServlet 3.0の変更点 後編

    Tomcat 7も対応したServlet 3.0の変更点 後編:Tomcat 7の新機能で何ができるようになるのか?(2)(1/3 ページ) 前回の「Tomcat 7も対応したServlet 3.0の6つの主な変更点」では、「Tomcat 7」が実装したServlet 3.0の新機能のうち「Ease of Development(EoD、開発容易性)」「Pluggability and Extendibility(モジュール化と拡張性)」について紹介しました。今回はAsynchronous processing(非同期処理)、セキュリティSession Tracking、マルチパート対応を紹介します。 アノテーションによる非同期処理 Servlet 3.0から非同期処理が使えるようになりました。Servlet 2.5までは、Servlet上でスレッドを生成・起動し、リクエストやレスポンス

    Tomcat 7も対応したServlet 3.0の変更点 後編
  • uncaughtExceptionメソッドでサブスレッドの例外発生をハンドリングする

    はじめに スレッドによる処理の並列化は、アプリケーションのスループットをアップしたいという場面で、しばしば用いられる常套テクニックです。スレッドを用いたアプリケーションでは、処理の並列化という性質を考慮して実装する必要があります。そのスレッドアプリケーションの実装の1つのテクニックとして、稿ではThreadGroupのuncaughtExceptionメソッドのオーバーライドという方法を紹介します。 対象読者 Javaプログラミングを行ったことがある方を対象とします。 必要な環境 サンプルは以下の環境で動作確認を行っています。 J2SE1.4 J2SE5.0 ThreadGroupのuncaughtExceptionメソッドの活用 ThreadGroupのuncaughtExceptionメソッドのシグネチャは以下の通りです。 第1引数には、例外が発生したスレッドのインスタンスが渡されま

    uncaughtExceptionメソッドでサブスレッドの例外発生をハンドリングする
  • Javaでマルチスレッドするときの注意をまとめてみた - プログラムdeタマゴ

    数年ぶりとかいうレベルでJavaのスレッドに触ったもんだから色々忘れてたので、忘れてたことまとめておく。 ダブルチェックロッキングパターンって何でダメなんだっけ? Javaではダブルチェックロッキングパターンって場合によってはクリティカルにヤヴァい事があります。やばいってことは覚えてたんだけど、どういう理由で、どういう場面でやばいのか忘れてました。 private Object checkObj; public void dcheck(){ if( checkObj == null) synchronized{ if(checkObj==null){ Object o = new Object(); checkObj = o; } } ……… } 上のコードがクリティカルにヤヴァいパターンです。 ダブルチェックロッキングパターンってのは主に、マルチスレッド環境でシングルトンなオブジェクトを

    Javaでマルチスレッドするときの注意をまとめてみた - プログラムdeタマゴ
  • Java で簡単マルチスレッドプログラミング - にょきにょきブログ

    仕事でマルチスレッドを扱うようになったので備忘録として Executors 関連のメモを残しておく。 あるタスクを別スレッドで実行したい時、Executors クラスを使えば自前でスレッドの管理をすること無く簡単に並列処理を行えるようになる。 もちろん完全に簡単になったわけではなく、マルチスレッドプログラミングの困難さは健在だが、自前でスレッドの管理をしない分バグを仕込む可能性も減るだろう。 はじめに Executors はタスクと呼ばれる処理の最小単位を別スレッドで実行する仕組みである。マルチスレッドなのでシングルスレッドに比べると複雑性は若干上がるものの、通常のマルチスレッドプログラミングに比べれば少ない複雑性、高い安全性を備える。そして何より、パフォーマンスの向上が期待できる。 この仕組みはジョブキューモデルそのものである。ジョブはタスク、キューは後述する Executor に相当す

    Java で簡単マルチスレッドプログラミング - にょきにょきブログ
  • Javaのスレッドセーフを理解していないJavaプログラマ。 - (define -ayalog ’())

    Java僕のことです。はい。 ちょっと調べながら書きます。 ちなみに僕がプログラミングを格的(?)にしたのってここ2年くらいなんですよね。 就職すればプログラマになれるって気で信じてました。あの頃の僕は死んでください。 んで、このままじゃダメだって気付いて勉強し始めたの最近なんで、ちょっと生暖かい目で見てください。 んで、なんでスレッドセーフかというと。。 JavaにStringで"文字列"の"X文字目"に"渡された文字列"を追加するメソッドないっけ?ってAPI眺めてる。— 綺人(社畜のゴミコードらい)さん (@ayato0211) 2月 8, 2012 この発言のあとにStringBuilder.insert使えばいいじゃないって言われたんですね。 で、幾つか会話を重ねた後に、StringBuilderはスレッドセーフじゃないよって言われて、「スレッドセーフってなんだ?」という状態

  • Javaファイル関連メモ2(Hishidama's Java Files Memo)

    ファイル・ディレクトリ操作2 Javaのファイル操作クラスは、JDK1.7(Java7)で新しいものが導入された。(通称NIO2(New I/O 2)。自分はニオツーって呼んでる) →旧ファイル操作 Filesクラスでファイルのコピーや移動などを行うことが出来る。 また、ファイルやディレクトリーの場所を表すPathというインターフェースが新たに設けられた。 Path java.nio.file.Pathは、ファイルやディレクトリーの場所を表すインターフェース。 従来はjava.io.Fileクラスがその役割だった。 import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Path; FileSystem fs = FileSystems.getDefault(); Pat

  • 4. スレッドの制御 (4)

    4.4. スレッドを停止させるには stopメソッドは推奨されないメソッドでした。それでは、スレッドを停止させるにはどうすれよいのでしょうか。 スレッドが自分自身を終了させるには、実行中のrunメソッドを終了するようにしておきます。startメソッドによって新しく起動されたスレッドは、runメソッドが終了すると消滅します。 自分以外のスレッドを終了させるには、一般的に次のような方法を用います。 runメソッドを実装したクラスで、スレッドの実行状態を表現するboolean型変数を宣言する。 runメソッド内で、繰り返しスレッドの実行状態を確認し、実行状態が「終了」を示す値になっていればrunメソッドが終了されるようにしておく。 そのスレッド実行状態を変更するためのメソッドを宣言する。 スレッド実行状態を「実行中」を示す値に設定し、新しいスレッドを起動する。 外部から、スレッド実行状態を変更す

  • Java の ExecutorService の使い方 - Java 入門

    Java の ExecutorService でスレッドプールを利用できる ここで説明するのは、おそらくもっとも安全にマルチスレッドプログラムを書く方法です。 さらに同様の方法で簡単に拡張することで、複数のスレッドを効率よく使うスレッドプール (Thread Pool) を利用できますので、 ぜひ覚えておきたい方法です。 その方法とは、 ExecutorService を利用することです。 ExecutorService では、 「Java のマルチスレッド・プログラミングの基」 でみたように Thread オブジェクトをそのまま生では使いません。 ExecutorService ではスレッドプールが用意されるので、そこにタスクがディスパッチされることで処理が行われます。 Java のタスクの状態 Executor によって処理されるタスクの状態は次の四つです。 created (作成さ

    Java の ExecutorService の使い方 - Java 入門
  • Java一意メモ(Hishidama's Java unique-id Memo)

    自分のプログラム内で一意となるIDを振りたいなら、使えるのはUIDやVMIDだろうか。他のは よー分からん(爆) System.out.println(new UID()); System.out.println(new VMID()); File#createTempFile() 例えばUIDやVMIDを使って重複しない一時ファイル名を生成するという使い道も考えられる。 ただしUID#toString()は「1b32f29a:11beb5202b3:-8000」の様にコロン「:」を含むため、Windowsではそのままではファイル名には使えない。String#replace(':', '_')とかで変換してやる必要がある。(VMIDも同様) でも、一時ファイルを生成するにはFile#createTempFile()を使うのが一番素直でしょう。 Thread#getId() Thread#g

  • Concurrency JSR-166 Interest Site

    Maintained by Doug Lea To join a mailing list discussing this JSR, go to: http://altair.cs.oswego.edu/mailman/listinfo/concurrency-interest. (Archived postings may also be found at MarkMail's searchable archives.) While JSR166 has completed and is a now final approved JCP spec, the expert group remains involved in incremental improvements and changes to the java.util.concurrent package and related

  • 文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena

    Java SE 7から、switch構文で文字列が使えるようになりました。 public void hoge(String s){ switch(s){ case "a": System.out.println("AA"); break; case "b": System.out.println("BB"); break; default: System.out.println("Other"); } } ところが、残念なことに、sがnullの場合はdefaultには飛ばず、ぬるぽが発生します。 そこで、null判定は事前にif文で行うことになるので、次のようなif-else switchイデオムを使うと便利です。 if(s == null){ System.out.println("Null!"); }else switch(s){ case "a": System.out.printl

    文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena
  • 列挙型を使った処理を共通化する (Java) - とあるソフトウェア開発者のブログ

    Javaで複数の列挙型(enum)に対して同じような処理を書く場合に、どのように共通化するかを考えました。この記事では、列挙型で共通のインターフェースを実装しても対処できないような場合について扱います。例えば、values()のようなstaticメソッドが関わる場合です。対象バージョンはJava SE 6です。(たぶん5でも動きます。) 2010/08/13追記 記事のタイトルを「列挙型を使った処理の共通化」から「列挙型を使った処理を共通化する」に変更しました。(前者だと、「『列挙型を使った処理』の共通化」と「列挙型を使った『処理の共通化』」のように2種類の解釈ができて紛らわしいため。) 共通化されていない場合 はじめに共通化されていない場合のコードを示します。main()を呼び出すと、2種類の列挙型(Size、Color)に対して、クラス名とメンバ一覧を出力します。printSizeVa

    列挙型を使った処理を共通化する (Java) - とあるソフトウェア開発者のブログ