約 2,878,920 件
https://w.atwiki.jp/wiki2_okumura/pages/88.html
IPodTouch用のJava一式が出ていたので、入れてみました。 いつの間にやら。去年の11月には出てたみたいです。 ちなみに、awtが動かなくて、当然swingも動かないけど、jettyは動くらしいです。 まず、disk0s1を圧迫しない様にリンク作成 特にclasspathがむっちゃ重いみたい。基本的に、/usr/bin以下に入っちゃうんで完全に退避は出来ひんけど、classpathくらいはdiskOs2に入れた方が良いらしいです。 mkdir /ver/root/classpath ln -s /ver/root/classpath /usr/share/classpath 今回は作らへんかったけど、他に/usr/share/javaと/usr/share/jamvmてのも出来てたから、こいつも入れといた方が良いかもしれません。 次に、Installer.appの設定 Installer.app用のリポジトリは「http //apptapp.saurik.com/」らしい。んで、まずはこれをInstaller.appに登録します。 Installer.appを起動する。 下のメニューで「Sources」を起動。 右上の「Edit」ボタンを押す。 左上の「Add」ボタンを押す。 「Add Source」ダイアログの入力欄に「http //apptapp.saurik.com/」と入力して、「OK」 右上の「Done」を押す。 で、インストール。 色々入れる必要が有ります。 「Java」パッケージ GNU Classpath JamVM GNU Classpath Tools Jikes Java SQLite UICaboodle 「Libraries」パッケージ libffi 以上の順番で入れたら、とりあえず java -version も javac -version も動きました。 ちなみに、「Java」パッケージの GNU Classpath JamVM GNU Classpath Tools と、「Libraries」パッケージの libffi は必須みたいで、他 jikesは高速javac。これでないとコンパイル劇重で、かつどっかからrt.jarを手に入れる必要が有り UICaboodleはシンボリックリンクを作ってくれる奴 Java SQLiteはSQLite用JDBCドライバ です。
https://w.atwiki.jp/ce00582/pages/3204.html
import java.awt.*; import java.awt.event.*; class game0103 extends Frame implements Runnable{ int mode; int t; int card1,card2,card3; Image img1,img2,img3; public static void main(String [] args) { Frame f=new game0103(); f.setTitle("game0103"); f.setSize(700,700); f.setBackground(Color.yellow); f.setVisible(true); } game0103(){ img1 = Toolkit.getDefaultToolkit().getImage("images.jpg"); img2 = Toolkit.getDefaultToolkit().getImage("100.jpg"); img3 = Toolkit.getDefaultToolkit().getImage("500.jpg"); t=0; Thread th=new Thread(this); th.start(); addWindowListener(new stopwin()); } class stopwin extends WindowAdapter{ public void windowClosing(WindowEvent we){System.exit(0);} } public void run(){ double x; t=1; mode=0; while(t 10){ card1=1; x=Math.random(); if (x 0.3)card1=2; if (x 0.6)card1=3; card2=1; x=Math.random(); if (x 0.3)card2=2; if (x 0.6)card2=3; card3=1; x=Math.random(); if (x 0.3)card3=2; if (x 0.6)card3=3; repaint(); try{ Thread.sleep(1000); }catch(InterruptedException e){} t=t+1; } mode=100; repaint(); } public void paint(Graphics g){ if (mode 50){ g.setColor(Color.yellow); g.fillRect(0,0,700,700); g.setColor(Color.black); if (card1==1)g.drawImage(img1,100,300,100,100,this); if (card1==2)g.drawImage(img2,100,300,100,100,this); if (card1==3)g.drawImage(img3,100,300,100,100,this); if (card2==1)g.drawImage(img1,200,300,100,100,this); if (card2==2)g.drawImage(img2,200,300,100,100,this); if (card2==3)g.drawImage(img3,200,300,100,100,this); if (card3==1)g.drawImage(img1,300,300,100,100,this); if (card3==2)g.drawImage(img2,300,300,100,100,this); if (card3==3)g.drawImage(img3,300,300,100,100,this); } if(mode 50){ g.setColor(Color.yellow); g.fillRect(0,0,700,700); g.setColor(Color.black); g.drawString("駄目でした",100,300); } } }
https://w.atwiki.jp/picolit/pages/11.html
Singleton(シングルトン) たった一つのインスタンスしか作らせないようにするパターンです。 普通はインスタンスを沢山作るものですが、場合によってはインスタンスを一つしか作らない、作らせたくないということもあるでしょう。そのようなときに威力を発揮します。 Java API での使用例 java.lang.Runtime もっとも、一つしか作りたくないのであれば newの呼び出しを1回だけにすればよいと思うかもしれません。プログラマが注意深く実装すればそれでも可能です。 しかしプログラマ任せにすると、間違ってnewを複数回呼び出してしまうかもしれません。 絶対ではありません。 このパターンを適用すると、指定したクラスのインスタンスが絶対に1つしか存在しないことを保証することができます。 ■クラス図 ■サンプルソース 実装方法は簡単です。 public class Hoge { /* 唯一のインスタンス。 */ private static final Hoge instance = new Hoge(); /** * コンストラクタ。 */ private Hoge() { } /** * このクラスの唯一のインスタンスを返す。 */ public static Hoge getInstance() { return instance; } } いわゆる「自己参照」の形を取ります。 ■実装のミソ 1. private な static 変数を定義して初期化します。 インスタンスは、このクラスのロード時に一度だけ生成処理が行われることにより作られます。 2. コンストラクタは外部に公開せず private とします。 そうすることで外部からうっかりインスタンス生成されることを防ぎます。 privateにしないと外部から new Hoge()とされてしまいインスタンスが自由に作れてしまいます。 3. getInstance() を作成し外部に公開します。 作られた唯一のインスタンスを返却することがこのメソッドの役目です。 public メソッドにしてどこからでも呼び出せるようにします。 どう頑張ってもこのクラスのインスタンスは一つしか生成されなくなります。 なお、生成のタイミングは、初めて getInstance() をが呼ばれた時です。 ■利用例 void Test() { /* new できません。コンパイルエラーとなります。 */ // Hoge hoge = new Hoge(); // この時点で Hoge インスタンス生成&返却 Hoge hoge1 = Hoge.getInstance(); // 同じインスタンス返却 Hoge hoge2 = Hoge.getInstance(); if (hoge1 == hoge2) { System.out.println("同じインスタンスです。"); } } Hoge.getInstance() を呼び出すことで Hoge インスタンスが返ってきます。 Hoge.getInstance() を何度呼び出しても同じインスタンスが返ってきます。 常に唯一のインスタンスが返されます。 getInstance() 以外にHogeインスタンスを得る方法はないので、唯一のインスタンスを使い回すことができるのです。 ■やってはいけない実装方法 某専門書や某ウェブサイトに、以下のような Singleton 実装方法が紹介されていました。 public class Hoge { /* 唯一のインスタンス。 */ private static final instance; // 初期化しない (= null と同義) /** * コンストラクタ。 */ private Hoge() { } /** * このクラスの唯一のインスタンスを返す。 */ public static Hoge getIntance() { if (instance == null) { // null だったら new する instance = new Hoge(); } return instance; } } これは、C言語で書かれていたものをJavaへ単純にベタ移植したものですが、状況によっては期待通りに動きません。 マルチスレッド動作において問題になります。 ほぼ同タイミングで別々のスレッドから getIntance() を呼び出した際に「複数」のインスタンスを生成してしまうことがあります。唯一のインスタンスという前提がもろくも崩れ去るという欠陥を持ってしまっています。 複数のインスタンスが作られないように getIntance() を同期化(synchronize)したり、ダブルチェックという技法を使うことで問題を回避することはできますが、同期化することでパフォーマンスを少なからず犠牲にしますし、コードもその分煩雑になってしまいます。 よって、お勧めしかねます。 ■シングルトンなインスタンスはずっと生存し続ける 通常のインスタンスは、どこからも参照されなくなるとガベージコレクションに拾われて、やがてメモリ解放されます。しかし、シングルトンなインスタンスは自分で参照し続けているのでガベージコレクションの対象とはなりません。 よって、シングルトンなインスタンスが他のインスタンスを掴んでいると、掴んでいるインスタンスもガベージコレクション対象外となります。 あまりにも掴んでいるインスタンスが多いとそれだけ使用メモリがかさみます。また、インスタンスを離す処理(remove や null 代入)を忘れるといつまでも掴んでいることになります。 すると、メモリが解放されずにメモリリークの状態になり動作が遅くなったり OutOfMemory 例外でアプリケーションが動かなくなってしまうことがあります。 インスタンスの管理はきっちり行う必要があります。 解放忘れをするとアプリケーションの不正終了など悲惨な事態を招きます。
https://w.atwiki.jp/dotcom/pages/134.html
使ってみました。 必要なものJDK(Java SE Development Kit ): JRE(J2SE Runtime Environment ) Eclipse ダウンロードにインストールJDK JRE Eclipse 必要なもの 必要なものをPCにぶちこんでみたの。 JDK(Java SE Development Kit ): これがないと開発できないの。コンパイルとかデバッグとかしてくれるの。 JRE(J2SE Runtime Environment ) これがないとJAVAでつくったものが動かないの。JAVAアプリケーションとか実行する時はこれを入れておかないといけないの。 でもこれJDKにはいってるのがあるのね。だから開発する人はそのJDKだけいれちゃえばいいのね。 Eclipse いろいろ開発できるソフト。無料なのにすげー使えるからみんな注目してるの。でもすげーメモリ使うの。困るの。 2G積んで設定変えたらなんかちゃんと動くようになった。でも起動遅いし実行考えるし。打ちなれてる人はこれじゃなくてもいいのかな。 JAVAだけじゃなくてCもC++も、果てはCOBOLの開発もできるんですって。 それ専用のプラグインという追加ソフトみたいなのを入れていけばなんでもできちゃう。 プラグインはいろんな人が作ってて、有料のもあるけど元が無料なら無料プラグインがいいよね。 ってことで私は無料のだけ使います。 ダウンロードにインストール 実際にダウンロードしてインストールしてみたの。 そのときのメモ。 ちゃんとググれば入れ方使い方が書かれたサイトって結構あるの。 時々環境が違ったりして困るけど、大丈夫。何とかなります。 JDK ここからDL。 http //java.sun.com/j2se/1.5.0/ja/download.html ネットでいろいろ検索してやってみました。 本はあったのですが、コピペできるほうが楽々。だから覚えないのね私。 JDKは必須です。 JRE あーとーでー。 Eclipse Eclipseのところみてみて。
https://w.atwiki.jp/allegory/pages/50.html
JavaScript JavaScript イベントハンドラ
https://w.atwiki.jp/ce00582/pages/3270.html
import java.awt.*; import java.awt.event.*; class game0209 extends Frame implements Runnable{ Image img; int car; int right[]=new int[1001]; int left[]=new int[1001]; public static void main(String [] args) { Frame f=new game0209(); f.setTitle("game0209"); f.setSize(700,700); f.setBackground(Color.yellow); f.setVisible(true); } game0209(){ img = Toolkit.getDefaultToolkit().getImage("an.jpg"); Thread th=new Thread(this); th.start(); addWindowListener(new stopwin()); } class stopwin extends WindowAdapter{ public void windowClosing(WindowEvent we){System.exit(0);} } public void run(){ int n,t; for (n=1;n 1001;n++){ right[n]=0; if(Math.random() 0.3)right[n]=1; left[n]=0; if(Math.random() 0.8)left[n]=1; } car=100; t=1; while(t 500){ car=car+1; repaint(); try{ Thread.sleep(200); }catch(InterruptedException e){} t=t+1; } repaint(); } public void paint(Graphics g){ int m; g.setColor(Color.yellow); g.fillRect(400,0,100,500); g.fillRect(100,0,100,500); g.drawImage(img,300,300,50,50,this); for (m=1;m 100;m++){ g.setColor(Color.red); if(right[car+m]==1)g.fillRect(400,500-5*m,100,5); if(left[car+m]==1)g.fillRect(100,500-5*m,100,5); System.out.println(left[car+m]); } } }
https://w.atwiki.jp/ce00582/pages/3580.html
import java.awt.*; import java.awt.event.*; import java.awt.image.*; class game0404 extends Frame{ PixelGrabber pg; Color col; Image img; int w=665; int h=886; int pix[]=new int[w*h]; int red,green,blue; int memor[][]=new int[h][w]; int memog[][]=new int[h][w]; int memob[][]=new int[h][w]; int m,n; int num; String s1,s2; game0404() { s1="600.jpg"; s2="700.jpg"; catchimg(s2); } public static void main(String[] args) { game0404 f = new game0404(); f.setSize(700,900); f.setBackground(Color.blue) ; f.setVisible(true); f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}}); } public void paint( Graphics g ) { int i,mx,nx,z,pp; g.setColor(Color.blue); g.fillRect(0,0,600,600); mx=1; nx=1; for (mx=0;mx h;mx++){ for (nx=0;nx w;nx++){ g.setColor(new Color(memor[mx][nx],memog[mx][nx],memob[mx][nx])); g.fillRect(nx,mx,1,1); } } } void catchimg(String s){ img = createImage(w,h); img = Toolkit.getDefaultToolkit().getImage(s); pg = new PixelGrabber(img,0,0,w,h,pix,0,w); try{pg.grabPixels();}catch(InterruptedException ie){} m=0; n=0; for(int i=0;i w*h;i++){ int p = pix[i]; col=new Color(pix[i]); red=col.getRed(); green=col.getGreen(); blue=col.getBlue(); memor[m][n]=red; memog[m][n]=green; memob[m][n]=blue; n=n+1; if (n==w)m=m+1; if (n==w)n=0; } } }
https://w.atwiki.jp/javafx/pages/14.html
Colorクラス 属性 属性名 項目 代入される型 red R値 Number green G値 Number blue B値 Number opacity 透明度(0.0 透明) Number スーパクラス AbstractColor サブクラス Colorの定数 対応表(Color)
https://w.atwiki.jp/loveubuntu/pages/25.html
手動インストールについて。 現在ライセンス関係の変更により、パートナーリポジトリからOracleJavaのインストールが出来なくなっています。よって、OracleJavaを使用したいユーザは現状は手動でインストール(あるいはアップデート)せざるを得ませんのでその手順をここでわかりやすく書きたいと思います。 OracleJavaのインストール前に。 OpenJDKをインストールしておくと後のJavaの設定が楽になりますので、慣れない方は「default-java」か「openjdk-6-jre」を導入しておいて下さい。 あらかじめ/usr/lib/jvmが作られていることを必ず確認して下さい。OpenJDKをインストールしたら自動で作られます。 公式サイトダウンロードページから最新のJavaをダウンロードして下さい。ここでダウンロードされたファイル名を「jre-6u31-linux-x64.bin」として以下に説明していきますので、ファイル名が違う場合は適時差し替えて下さい。(32bit版OSの場合、jre〜i386.binとなっているはずです。) はじめてOracleJavaを導入する方はこちら。 1.「Ctrl + Alt + T 」を押して端末を開きます。 2.端末から以下のコマンドを打ちこみ、OracleJavaが使えるようにします。 $ cd ダウンロード $ sudo su # mv jre-6u31-linux-x64.bin /usr/lib/jvm # cd /usr/lib/jvm # chmod +x jre-6u31-linux-x64.bin # ./jre-6u31-linux-x64.bin ※ 3行目と5・6行目の jre-6u31-linux-x64.bin は、「jre-」と打ってタブキーを押せばそこにあるファイル名が自動で補完されますので有効に活用して下さい。 ここまで打ち込んだら jre-6u31-linux-x64.bin が展開されて、 /usr/lib/jvm に 「jre1.6.0_31」(これもファイルにより変わります)というフォルダができます。 # ls -CF を打ち込むか、nautilusファイルブラウザで何という名前のフォルダが出来たか確認して下さい。(フォルダの頭は今のところjre1.〜という規則性を持っています) 続けて出来た jre1.6.0_31 というフォルダを参照するリンクフォルダ「oracle-java」を作成します。(←これが一番重要です。) これ以後はリンクフォルダ「oracle-java」を使用して説明していきます。 # ln -s jre1.6.0_31 oracle-java もうダウンロードしたファイルに用はありませんので、このファイルを削除します。 # rm jre-6u31-linux-x64.bin update-alternativesのinstallオプションを使って、最新のJavaを選択できるようにします。 # update-alternatives --install /usr/bin/java java /usr/lib/jvm/oracle-java/bin/java 1000 update-alternativesのconfigオプションで使用できるJavaの選択肢が出てきますので、「/usr/lib/oracle-java/bin/java」の番号を選びます。 # update-alternatives --config java 最後に動いているJavaのバージョンを確認して下さい。 # java -version Javaのバージョンが最新になっている(ex. "1.6.0_31")ことが確認できたら成功です。 3.OracleJavaの文字化けをしないようにフォント設定をします。ここではTakaoPGothicを使いますが、ご自分の好きなフォントで読み替えて下さい。 # cd /usr/lib/jvm/oracle-java/lib/fonts # mkdir fallback # cd fallback # ln -s /usr/share/fonts/truetype/takao/TakaoPGothic.ttf . # mkfontdir # mkfontscale 4.firefox で JavaPlugin が使えるように打ち込んでいきます。 # cd /usr/lib/firefox-addons/plugins # ln -s /usr/lib/jvm/oracle-java/lib/amd64/libnpjp2.so libjavaplugin.so このlibnpjp2.soは、32bit版の場合「i386」フォルダ、64bit版の場合「amd64」フォルダの中に有りますので、ご自分のOSを確認して読み替えて下さい。 firefoxがJavaPluginを読みにいくのは/usr/lib/firefox-addons/pluginsの中なので、そこにプラグイン本体のlibnpjp2.soをリンクします。 打ち込み終わりましたら、firefoxのプラグイン画面で確認して下さい。 2回目以降 OracleJavaのバージョンをアップデートしたい場合。 1.初めての設定を必ず上記の方法で入れた場合について説明します。ここで「oracle-java」のリンクフォルダが有ることが重要です。 2.はじめてOracleJavaを入れた時の手順と同じく「./jre-6u〜」まで行なって下さい。 $ cd ダウンロード $ sudo su # mv jre-6u31-linux-x64.bin /usr/lib/jvm # cd /usr/lib/jvm # chmod +x jre-6u31-linux-x64.bin # ./jre-6u31-linux-x64.bin 3.リンクフォルダoracle-javaを、最新のOracleJavaのフォルダへのリンクに差し替えます。 # rm oracle-java # ln -s jre1.6.0_31 oracle-java 4.初めて入れた時の「3.」と同じようにフォント設定をします。 # cd /usr/lib/jvm/oracle-java/lib/fonts # mkdir fallback # cd fallback # ln -s /usr/share/fonts/truetype/takao/TakaoPGothic.ttf . # mkfontdir # mkfontscale 以上でJavaのバージョンが最新になります。firefoxのプラグインも最新になっています。リンクフォルダがあると、とても簡単に最新版に変更できます。
https://w.atwiki.jp/funf/pages/27.html
外部 @IT JUnit+Eclipse Javaの道 Junit(基本操作) Javaの道 Eclipse(Junit) JUnit実践講座 JunitのAPI JunitのAPI(日本語) 基本的には、APIのAssertクラスを使用する。 Eclipseや単体でのJunitの使い方はリンクを参照 JUnitの基本 setUp メソッド一個 tearDown の繰り返しで実行される。(順不同で) Junit 指定した順番で実行する。 ポイント staticな戻り値Testでメソッド名suite()を作る public static Test suite(){ TestSuite suite = new TestSuite(); //決り文句? //あるテストクラスのメソッドをキューに入れる?場合 suite.addTest(new テストするクラス("そのメソッド")); //例 suite.addTest(new UtilTest("getNO")); //あるテストクラスを丸ごとキューに入れる?場合 suite.addTest(テストするクラス.class); //例 suite.addTest(UtilTest.class); return suite; } addTestで追加する。 実行順は制御できるが、setUpとtearDownはメソッドごとに必ず実行されるようだ その他のアイディア?ノウハウ? 例外が発生しないようにするテストでは例外はthrowsするのがよい(正常系) public void test????() throws Exception{ //正常なテストコード } 例外発生時のテストは、catchにassertTrue(true)を書くのがよいらしい public void test?????(){ try{ //例外を発生させるコード fail(); }catch(なんとかException e){ assertTrue(true); } } 繰り返しもforを使わずに手動で書いたほうが良い