約 1,705,222 件
https://w.atwiki.jp/java_pro/pages/34.html
import java.io.*; public class CountSan { public static void main(String[] args){ for (int i = 3; i = 99; i = i + 3){ System.out.println(i); } } }
https://w.atwiki.jp/thiroyoshi/pages/47.html
senでwiki辞書を使う 以下で紹介されてる方法でできるらしい http //d.hatena.ne.jp/nodchip/20090309/1236615706 形態素解析 これまで、形態素解析にcabochaを使ってたわけですが、javaでMecabを実装したとかいうのがあったみたいで…。 http //ultimania.org/sen/ つーかYahoo!がそういうのしてくれるAPIを公開していたらしい。アンテナは大きく広げておかないといかんもんだなぁ… http //developer.yahoo.co.jp/webapi/jlp/da/v1/parse.html 下のサイトはサンプル公開してる。 http //www.nilab.info/zurazure2/001036.html 形態素解析の辞書 ChasenとMecabの辞書として使えるものだそうな。公開されてる精度がよすぎてびっくり。 http //www.tokuteicorpus.jp/dist/ Java使う人にはとてもよい http //nextindex.jp/java/ Stringの文字エンコーディング 普通にプログラムするには大して問題にならないファイル名の文字コード。 webでデータ公開するとかなるとなんかこれをよくミスる。 で、見つけたよさげなサイト。参考に http //hp.vector.co.jp/authors/VA017148/java/encoding.html デーモンスレッド 使えれば使う 参考URL http //memolet.blog22.fc2.com/blog-entry-792.html GC overhead limit exceeded 調べてみたら、ガベージコレクションに時間かかりすぎやから止まった、ってことらしい。 ガベージコレクション自体はメモリの自動解放とかしてくれるけど、メモリ使用量が多いとかでスワップが多くなったりすると処理がかかるみたいだ。 で、その時間がかかりすぎるとエラー吐いて止まるってのが上のメッセージらしい。 解決にはメモリをしっかり確保すればいいってのは当たり前だが、どうしても頻発する場合などには実行時の引数に以下のものを加えるといい。 -XX -UseGCOverheadLimit 参考URL http //confluence.atlassian.co.jp/display/DOC/Fix+Out+of+Memory+errors+by+Increasing+Available+Memory#FixOutofMemoryerrorsbyIncreasingAvailableMemory-OutOfMemoryError%3AGCoverheadlimitexceeded http //ameblo.jp/f-o-p/entry-10537149611.html MySQLと連携 javaのコードからMySQLを使う場合に、JDBCドライバが必要になる。 これはMySQLのサイトからダウンロードができる。 Javaとの連携なので、downloadの中の「Connector/J」をダウンロードする。 ダウンロードしたファイルを解凍すると、いろいろ入っているが、その中にjarがある。 名前は、「mysql-connector-java-5.0.8-bin.jar」だ。 これのクラスパスを通せば、あとはjavaのファイルの中で適切なコマンドを使っていけばいい。 参考URL http //mountainbigroad.jp/fc5/mysql_java.html MySQLからの日本語が文字化け まだいろいろ試していないもののメモ。 文字化けなので文字コードに問題があることは明白。 この場合にするべきは、各所での文字コードの設定。 「MySQLのデフォルト設定」 「javaコード内でのurl指定時」 くらいだが、これでも文字化けする場合があるのだ。 これはMySQLのバージョンを下げればいいこともあるらしい。 この問題があるのは、4.1.7でらしい。これをバージョンダウンすれば解消されるとさ。 またちょっとしたコードの書き換えでもいけるらしい。 str = new String(str.getBytes("ISO-8859-1"), "JISAutoDetect"); みたまんま、コード変換するみたいだ。これを取得した値に対して行ってやると解消されるとか。 でも、バージョンを下げるとこんなもんは必要ないみたい。 参考URL http //oshiete.goo.ne.jp/qa/1118005.html javaをコマンドラインで サーバーなどでjavaを動かすために覚えた。 しかし、コマンドを詳しく覚えているはずもなく… パスを通す .bashrcにjarファイルのパスをかたっぱしから通すように指定。 これぐらい重くもなんともないだろ! 実際に使ってるスクリプトは以下 jars=`ls /home/hiroyoshi/system/jar` for jar in ${jars[@]} do export CLASSPATH=$CLASSPATH /home/hiroyoshi/system/jar/$jar done やってることは簡単で、jarのファイル名を配列で全部とってきて、それにパスを当てはめてexportしてるだけ。 これでディレクトリjarにjarを追加するだけで、ログインするときに毎回読み込んでくれる。 もうパスを通す必要はない!便利! コンパイル 使ったのは実際には以下のコマンド javac -sourcepath XX/src -d XX/bin/ XX/src*/*.java XXはディレクトリ名(プロジェクト名とか) javac javaのコンパイルコマンド -sourcepath ソースファイルの場所指定オプション -d クラスファイルの出力場所指定オプション これで、srcに保存されいるパッケージでまとめられているjavaソースファイルをきちんとコンパイルできる。 また、このコンパイル時にbin内にパッケージも作られる。 ただし、srcとbinは事前に作っておく必要があるのは言うまでもない。 実行 ちょっと泥臭い方法になってしまったというか、メモるほどの事ではないが一応。 java -Xmx1g main/Main これをbinで行う。ほんとはプロジェクトのホームで実行したかったけど仕方ない…。 ファイルなどを生成するのでも、プログラム内でディレクトリ指定すればbin内には作らなくて済むので。 RSSリーダー 研究でブログを扱っているので作ってみたところのメモ。 ほとんどコピペやけど、プログラムってそんなもん。 使ってるライブラリ ROME:本プログラムのキモ。RSSを扱うためのメソッドが揃ってるみたい。 基本はこのROMEで処理します。依存とかの関係で ROME-Fetcher JDOM も必要です。JDOMはxmlを扱うライブラリで、これがないとROMEは動かない。 それぞれのライブラリはバイナリをダウンロードする。 JDOMは圧縮形式でダウンロードでき、解凍するとディレクトリができる。 この中からjdom.jarを見つけ出す。 サンプル public class RSSReader { @SuppressWarnings("unchecked") public static void main(String[] args) { //rdfでもxmlでもOK String url = "http //blog.livedoor.com/xml/article_ranking.rdf"; try { URL feedUrl = new URL(url); SyndFeedInput input = new SyndFeedInput(); SyndFeed feed = input.build(new XmlReader(feedUrl.openStream())); ArrayList SyndEntry entries = (ArrayList SyndEntry ) feed.getEntries(); System.out.println("Blog Title:" + feed.getTitle()); System.out.println("======================="); Iterator SyndEntry it = entries.iterator(); SyndEntry entry; while(it.hasNext()){ entry = it.next(); System.out.println("Title:" + entry.getTitle()); System.out.println("Date:" + entry.getPublishedDate()); System.out.println("Link:" + entry.getLink()); System.out.println("URI:" + entry.getUri()); System.out.println("Description:" + entry.getDescription().getValue()); System.out.println("---------------------"); } System.out.println("size = " + entries.size()); } catch (FeedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 参考URL スマートネットワーク開発ブログ JavaでRSSのパースをしてくれるライブラリ ROME 正規表現 すごく便利な正規表現。でもすごくわかりにくい正規表現。 そんな正規表現のメモ。 (特にJavaで使えるというものです) 全角記号 [^ぁ-んァ-ヴ一-龠0-90-9a-zA-Zー〜、] 総当たりではあるが、使えるのでよし。 意味は「ひらがなとかカタカナとか以外」 半角記号 \p{Punct} javaのAPIで定義されているものそのまま。 ただし、使うときにはこれをこのまま書くだけだと、「エスケープシーケンスは…」と怒られるので、こいつをエスケープしてやる。 つまり、 line = line.replaceAll("\\p{Punct}",""); ってすると、line内の半角記号は一掃される。 半角カタカナ [。-゚+] そのまま文字コードにのっとったもの。つまり、意味は ー。「」、・ヲァィゥェォャュョッタアイウエオカキクケコサシスセソミチツテトナニヌネノハヒフヘホマムメモヤユヨラリルレロワン゙゚ です。 また、正規表現の[a-z]のような「-」(ハイフン)の範囲表現はASCIIコードに準じたものをなっている。(参考URL参照) 例えば、コード表によると「!」から「/」を続けて範囲指定([!-/])できるが、「?」までする([!-?])と数字も選択されてしまう。 参考URL フジハラボ:Javaで入力チェックに使える正規表現まとめ ASCII文字コード
https://w.atwiki.jp/june1st/pages/34.html
JAVA JAVAアプレット
https://w.atwiki.jp/fns1556/pages/36.html
Java Updaterの無効化(Windows) 1.msconfigを使う場合 ファイル名を指定して実行にて「msconfig」 スタートアップタブでJava(TM) Platform SE Auto Updater 2.0(もしくはjusched)のチェックを外す 2.レジストリを直接消す場合 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SunJavaUpdateSched 上記キーを削除する
https://w.atwiki.jp/cz8686/pages/18.html
[Java]eclipseセットアップ ①フォントの設定 Windows ⇒Preferrence ⇒Fonts でText Fontを変更する。 ②JDKの設定 デフォルトでは、 JREのjava.exeが設定されているので JDKのjava.exeに変更する。 Windows ⇒Preference ⇒Java ⇒Installed JREs で Standard VMにJREがデフォルトチェックが 入っている これに インストールしてあるJDK1.4.XのJDKを設定する。 ●TOMCATプラグイン動作方法 ②のJDK設定の後、 Windows ⇒Preference ⇒Tomcat ⇒TOMCATの設定 でJREを変更したJDK1.4.xのものを指定する。 ●JSP.XMLの色分けプラグインの設定 (Solar Eclipse Web) Windows ⇒Preference ⇒Solar Eclipse Web で Add To List に xml を追加 [Java]HTTPでHTMLをゲット ■実行方法 以下の内容の.batファイルを作成、第一引数のURLのHTMLファイルを標準出力する。 java -Dhttp.proxyHost=proxy1.wwww.abc.co.jp -Dhttp.proxyPort=8080 DisplayURL2 %1 import java.io.*; import java.net.*; public class DisplayURL2{ public static void main(String[] args){ for(int i=0; i args.length;i++){ System.out.println("URL= "+ args[i]); try{ URL url = new URL(args[i]); BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(),"Shift_JIS")); String line=""; while((line =reader.readLine()) != null){ System.out.println(line); } reader.close(); }catch(MalformedURLException e){ System.out.println("URLの形式が間違っています " + e); }catch(IOException e){ System.out.println("I/Oエラーです " +e); } } } }} [Java]JUnit使用例 ■JUnitのテスト画面起動 java junit.ui.TestRunner ■サンプルコード ●テスト対象クラス public final class Sample{ public int value = 0; Sample(int v){ this.value = v; } public int twice(){ this.value *= 3; //this.value *=2; return(this.value); } public int add1(){ this.value+=1; return(this.value); } } ●Sampleクラスに対するテスト実行クラス import junit.framework.*; public final class SampleTester extends TestCase{ public SampleTester(String name){ super(name); } protected void setUp(){ //ここで設定する } public static TestSuite suite(){ TestSuite suite = new TestSuite(); //テストケースを加える suite.addTest(new SampleTester("testAdd1")); suite.addTest(new SampleTester("testTwice")); return suite; } //テスト用メソッドの記述 public void testAdd1(){ Sample s1 = new Sample(10); s1.add1(); assert(s1.value == 11); } public void testTwice(){ Sample s1 = new Sample(10); Sample s2 = new Sample(5); assert(s1.value != s2.value); s2.twice(); assert(s1.value == s2.value); } } //end of SampleTester 使用法: SampleTester.classのあるフォルダから java junit.ui.TestRunner でGUIを起動し、 testclassnameに SampleTester と入力しRUNボタンを押す。 その結果が表示される。 [Java]MyDBAccess.java //package myjdbc; //import myjdbc.*; import java.sql.*; public class MyDBAccess { private String driver; private String url; private String user; private String password; private Connection conn; private Statement stmt; private ResultSet resultset; /** * コンストラクタ * @param driver ドライバー * @param url URL * @param user ユーザ名 * @param password パスワード * */ public MyDBAccess( String driver, String url, String user, String password) { this.driver = driver; this.url = url; this.user = user; this.password = password; } /*引数なしのコンストラクタ * 既定値の利用 * */ public MyDBAccess() { this.driver = "oracle.jdbc.driver.OracleDriver"; this.url = "jdbc oracle thin @192.168.1.1 1521 DB01"; this.user = "test"; this.password = "test"; // this.driver = "com.mysql.jdbc.Driver"; // this.url = "jdbc mysql //192.168.1.1/test"; // this.user = "root"; // this.password = ""; } /** * データベースへの接続を行う */ public synchronized void open() throws Exception { // Class.forName(driver); Class.forName(driver).newInstance(); conn = DriverManager.getConnection(url, user, password); stmt = conn.createStatement(); } /** * SQL 文を実行した結果の ResultSet を返す * @param sql SQL 文 */ public ResultSet getResultSet(String sql) throws Exception { if (stmt.execute(sql)) { return stmt.getResultSet(); } return null; } /** * SQL 文の実行 * @param sql SQL 文 */ public void execute(String sql) throws Exception { stmt.execute(sql); } /** * データベースへのコネクションのクローズ */ public synchronized void close() throws Exception { if (resultset != null) resultset.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } public static void main(String[] args) { MyDBAccess db = new MyDBAccess(); try { db.open(); ResultSet rs = db.getResultSet("SELECT * FROM LOGIN_TBL"); int i=0; while (rs.next()) { i++; String _user_id = rs.getString("USER_ID"); String _password = rs.getString("PASSWORD"); System.out.println(i + " "+ _user_id + "," + _password); } db.close(); } catch (Exception e) { e.printStackTrace(); } } } [Java]OracleJdbcTest1.java import java.sql.*; //import jdbc.sql.*; public class OracleJdbcTest1 { public static void main (String args []) throws SQLException, ClassNotFoundException { // Connectionの作成 Class.forName ("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection ("jdbc oracle thin @192.168.1.1 1521 DB01","scott", "tiger"); // OCIの場合 // DriverManager.getConnection ("jdbc oracle oci8 @TNSname","scott", "tiger"); // Statement の作成 Statement stmt = conn.createStatement (); // Resultset の作成 ResultSet rset = stmt.executeQuery ("select ENAME from EMP"); // データの表示 while (rset.next ()) System.out.println (rset.getString (1)); } } [Java]TripleDES DECODE import java.io.IOException; import java.io.PrintWriter; import java.net.URLEncoder; import java.net.URLDecoder; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; import java.util.Date; import java.io.*; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.SecretKeySpec; public class ANGO_DECODE { byte[] keyMaterial ={ (byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12, (byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12,(byte)0x12, (byte)0xAB,(byte)0xCD,(byte)0xAB,(byte)0xCD,(byte)0xAB,(byte)0xCD,(byte)0xAB,(byte)0xCD }; //暗号文 //ファイル読み込み String line = null; String ciphertext = null; int count = 0; try{ BufferedReader reader = new BufferedReader( new FileReader(args[0])); while( ( line = reader.readLine()) != null){ count++; ciphertext = line; // URLデコード処理 String a1; String a2; a1 = URLDecoder.decode(ciphertext); // System.out.println("a1=" + a1); // BASE64デコード処理 byte[] cipherbytes = a1.getBytes(); Base64 base64obj = new Base64(); byte[] base64decbytes = base64obj.decode(cipherbytes); String base64decodeStr = new String(base64decbytes); //System.out.println("base64decodeStr=" + base64decodeStr); // TripleDES復号化処理 // TripleDES鍵の生成 SecretKeySpec tdeskey = new SecretKeySpec(keyMaterial,"DESede"); // Cipherインスタンスの生成 Cipher desCipher = Cipher.getInstance("DESede"); // 初期化 desCipher.init(Cipher.DECRYPT_MODE,tdeskey); byte[] plainbytes = desCipher.doFinal(base64decbytes); String plaintext = new String(plainbytes); // System.out.println("plaintext "+ plaintext ); System.out.println(count + "," + a1 + "," + plaintext); } //for end reader.close(); }catch(NoSuchAlgorithmException e){ e.printStackTrace(); }catch(NoSuchPaddingException e){ e.printStackTrace(); }catch(InvalidKeyException e){ e.printStackTrace(); }catch(IllegalBlockSizeException e){ e.printStackTrace(); }catch(BadPaddingException e){ e.printStackTrace(); }catch(FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } } } [Java]war アーカイブ作成方法 Jarツールを使って、Webアプリケーション全体をアーカイブします。アーカイブしたいWebアプリケーションのルートディレクトリに移動して、以下のコマンドを実行してください。 jar cvf WARファイル名 ./* WARファイル名は当然「.war」の拡張子が必要です。testというディレクトリ配下のWebアプリケーションを test.warというファイル名でアーカイブしたい場合は、testディレクトリに移動して以下のコマンドで行います。 jar cvf test.war ./* [Java]時間取得 import java.util.*; import java.io.*; import java.text.*; public class Utils{ // getNow("yyyy.MM.dd at hh mm ss"); public static String getNow(String dateformat){ SimpleDateFormat formatter = new SimpleDateFormat(dateformat); Date currentTime = new Date(); String dateString = formatter.format(currentTime); return dateString; } } [Java]日本語パラメータ %! public String toUnicode(String s) throws java.io.UnsupportedEncodingException{ return (new String(s.getBytes("8859_1"),"JISAutoDetect")); } % html body % String name= toUnicode(request.getParameter("name") ); %
https://w.atwiki.jp/k_tech/pages/19.html
Java6 プログラミング講座 目次 1. プログラミング環境 2. プログラミング基礎 3. クラス 3.1 クラスとオブジェクト 3.2 メソッドとフィールド 3.3 メソッドの引数とメソッドのオーバーロード 3.4 コンストラクタとメンバへのアクセス 3.5 スタティックフィールドとスタティックメソッド 4. クラスと継承 4.1 継承 4.2 スーパークラスとサブクラス 4.3 メソッドのオーバーライド 4.4 抽象クラスと抽象メソッド 5. クラスライブラリ 6. 例外処理 7. 入出力 8. マルチスレッド リンク・参考 Java言語仕様 wikipedia Javaの文法
https://w.atwiki.jp/a3mi22/pages/55.html
Javaのこと。 メソッド メソッド~ファイル処理系 まめ知識 java技 エラー対処法
https://w.atwiki.jp/ankundora/pages/25.html
「java」のページです 「プログラミング@wiki」では「java」の執筆者を求めています
https://w.atwiki.jp/uechi/pages/11.html
java java関係のメモ swt Draw2D
https://w.atwiki.jp/mikotoamamiya/pages/8.html
JavaDoc JavaDoc5.0を参照する