Archive for the ‘Java’ tag
Javaのコンストラクタの覚え書き
クラスの連携においてコンストラクタを使用する時の注意事項
コンストラクタとは?
インスタンスを生成する際、初期化処理をするために定義する特別なメソッド
コンストラクタの特徴
クラスのコンストラクタの有無の違い
1)コンストラクタのないクラス
「デフォルトコンストラクタ」があるとみなされる
–>この場合、引数無し,処理無し
2)コンストラクタがあるクラス
自分が用意したコンストラクタのどれかひとつを必ず利用する必要がある
※デフォルトコンストラクタはない
public class Person {
public int age;
public Person() {
age = 0;
}
}
複数定義した場合は下記のようになる
public class Person {
public int age;
public Person() {
age = 0;
}
public Person(int a) {
age = a;
}
}
資料:(128ページあたり)http://www.knowledge-ex.jp/opendoc/JavaProgramming.pdf
Javaのアップデート方法1
前にHadoop機を組み立てているときに、nicが認識されないことで苦戦していたら、
ご学友の方に[CentOS]5.4を入れればnicが自然に認識されるよとお教えいただいた。
みると[CentOS]5.4のデフォルトのJavaは1.4だったので、アップデートしようとしていたところ、
[JDK1.6]をインストールして、java -version コマンドを打ってもVersion1.4が表示されるのが、なぜかわからなかった。
いちおうインストールするディレクトリは、前回から変更して/usr/javaにすることにした。 先にchmodで実行権限を付与する。[root@hdp_master java]# chmod 705 jdk-6u18-linux-i586-rpm.binインストール開始
[root@hdp_master java]# ./jdk-6u13-linux-i586-rpm.binライセンスのとろこは、spaceキーで飛ばしていき、yesを入力
Press Enter to continue….. //空enterを押下。
Done. //インストール完了!!環境設定
[root@hdp_master java]# vi /etc/profile/etc/profileの下段に3行を追加する(環境設定)
export JAVA_HOME=/usr/java/jdk1.6.0_13 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar設定内容を反映[root@hdp_master java]# source /etc/profileコンパイル&実行環境の設定
シンボリックリンクがデフォルトの/usr/bin/javaを指しているので、
あたらしいjavaを指すように設定する
念のためjdkが使用されているバージョンを確認[root@hdp_master java]# alternatives --display java新しいjavaを読むように追加する
[root@hdp_master java]# alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_18/bin/java 200 [root@hdp_master java]# alternatives --config java 2 プログラムがあり 'java' を提供します。 選択 コマンド ---------------------------------------------- *+ 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java 2 /usr/java/jdk1.6.0_18/bin/java Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:ここで2を入力してenterを押下して完了。
最後に、java -versionと javac -versionでバージョンが同じになっていることを確認!
参考URL: http://blog.livedoor.jp/incomplete_7/archives/51918829.html
Hadoop機の作業記録
[Atom箱の作成]から、ネットに接続されているか確認したところ、デフォルトではNIC(eth0)が認識されていなかった。
そこで[参考]を元に設定したらNIC(eth0)が認識されました。
クライアントPCからsshでログインできたのを確認後、モニターとキーボード、マウスを外します。
その後、localhostとデフォルトの名前をhdp_masterと変更しました。
[root@localhost admin]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.3.8 hdp_master //←ここを追加
[root@localhost admin]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=hdp_master //←ここを追加
GATEWAY=192.168.3.8 //←ここを追加
その後、[javaのアップデート]を行うため、USBでmountコマンドを使用して、usbの中身にインストールしてあった最新のJava SDKを/usr/local上で解凍、展開を行います。[USBフラッシュメモリを使うには]
しかしmountしても、/mnt/usbfmには空っぽだったので、
# dmesg
をみると
SCSI device sdb: 512000 512-byte hdwr sectors (262 MB)
とか書いてあったのでsdaではなくsdbに変えたところ、
# mount -t vfat /dev/sdb1 /mnt/usbfm/ でなんなく認識されました。
[root@hdp_master home]# ls /mnt/usbfm
hadoop-0.20.1.tar.gz jdk-6u17-linux-i586-rpm.bin r8168-8.015.00.tar.bz2
↑
中身のなかのこれを先に解凍
[root@hdp_master usbfm]# tar zxf hadoop-0.20.1.tar.gz
[root@hdp_master usbfm]# mv hadoop-0.20.1 /home/hadoop
Javaをアップデートしたかったけど、hadoopの解凍を先に行いました。(/home直下へ)
[root@hdp_master usbfm]# ./jdk-6u17-linux-i586-rpm.bin
次にJavaの最新Verをusbfm上で、解凍展開を行おうとしたら、
Please free up the required Disk Space and try again とメモリ領域が足りないということで、ディレクトリをlocalへ移動して
[root@hdp_master usbfm]# cd /usr/local
[root@hdp_master local]# ./jdk-6u17-linux-i586-rpm.bin
Do you agree to the above license terms? [yes or no]
yes
Unpacking…
Checksumming…
Extracting…
中略
For more information on what data Registration collects and
how it is managed and used, see:
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html
Press Enter to continue…..
Done. →解凍完了!
次に環境設定を行う。
参考 http://d.hatena.ne.jp/hkano/20081014
JDBCドライバの接続確認
JDBCドライバとMySQLの接続テスト
public class Dbconnect {
public static void main(String args[]) {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/データベース名", "root", "パスワード入力");
System.out.println("MySQL と接続しました。");
} catch (SQLException e) {
System.out.println("MySQL との接続失敗");
System.out.println("SQLExceptionは " + e.getMessage());
System.out.println("SQLStateは " + e.getSQLState());
System.out.println("VendorError: " + e.getErrorCode());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
conn = null;
System.out.println("MySQLとの接続を切断しました");
}
} catch (Exception e) {
}
}
}
}
TomcatでHelloWorld
サーブレット&JSPの学習をはじめました。まずHelloWorldから。
まずディレクトリ構造をこのように設定しておく。

次に↓のディレクトリに


ソースコードは↓とします。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
PrintWriter out = response.getWriter();
out.println("");
out.println("HelloWorld");
out.println("");
out.close();
}
}
そしてコンパイルをおこなう
javac -classpath /usr/local/tomcat/lib/servlet-api.jar HelloWorld.java
なにも出なかったら成功です。

次はjavaファイルを表示させるための設定ファイルを用意します。

そしてweb.xmlを作成したら、中を↓のように記載します。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>hello</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name> hello </servlet-name> <url-pattern> /xxxx </url-pattern> </servlet-mapping> </web-app>
次にTomcatを再起動します。
/etc/rc.d/init.d/tomcat restart
再起動ができたら、ファイルを作成したアドレスにアクセスして
結果を確認します。
↓
http://192.168.3.7/tomcat/hogehoge/xxxx
するとこのような画面が確認できます。

む、なんか<html>が表示されてしまっている。これはよくない。が、まあいいとするw