IBM System i (AS400): JDBCからPF・LFファイルへアクセスする際の参考サイト
JDBCを用いてIBM System i(AS400)からPF、LFファイルへアクセスする際に参考となるリンクを以下に纏めておく。(全て公式サイト)
JDBCを用いてIBM System i(AS400)からPF、LFファイルへアクセスする際に参考となるリンクを以下に纏めておく。(全て公式サイト)
既存のJDKをアンインストールする手順を下記に記載。対象のマシンに最新のJDK (Java SE Development Kit)をインストールする際等に使用。
本記事はEclipseとJUnitによるコーディング・ユニットテストサイクルを便利にするQuick JUnitプラグインのインストール方法と基本的なテストコード・テスト実行のチュートリアルを記載している。
Mac OS, Java7, Eclipse 4.32, JUnit4, Quick JUnit v0.7となる。仮にOSがWindows版だとしても内容の大筋は大差ない。
Oracle(旧Sun) Javaは下記サイトからダウンロードする。 Java SE Downloads RedHat系のデストリビューションであればrpmパッケージが簡単。ダウンロード後にroot権限で下記コマンドを実行。
# rpm -ivh jdk-7u10-linux-x64.rpm
(100%)########################################### [100%]
Unpacking JAR files...
rt.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_10/jre/lib/rt.pack
jsse.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_10/jre/lib/jsse.pack
charsets.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_10/jre/lib/charsets.pack
tools.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_10/lib/tools.pack
localedata.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_10/jre/lib/ext/localedata.pack
上記のエラーが出力されるが後述の参考サイトを確認する限り特に問題ないようだ。
# javac -version;java -version
javac 1.7.0_10
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
以下の2つのサンプルコードはローカルでTCP Socketを用いたEchoサーバ/クライアントを走らせるもの。Javaのネットワークプログラミングで基本となるクラスとメソッドの使いどころを確認しておきたくて作成。まぁ今はnioがデファクトですけど。
package tcpechoserver;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketAddress;
public class Main {
private static final int BUFSIZE = 32; // 受信バッファサイズ
public static void main(String[] args) throws IOException {
int servPort = 5000;
// サーバソケットの作成
ServerSocket servSock = new ServerSocket(servPort);
int recvMsgSize; // 受信メッセージサイズ
byte[] receiveBuf = new byte[BUFSIZE]; // 受信バッファ
// クライアントからの接続を待ち受けるループ
while (true) {
Socket clntSock = servSock.accept(); // クライアントの接続を取得
SocketAddress clientAddress = clntSock.getRemoteSocketAddress();
System.out.println("接続中:" + clientAddress);
InputStream in = clntSock.getInputStream();
OutputStream out = clntSock.getOutputStream();
while ((recvMsgSize = in.read(receiveBuf)) != -1) {
out.write(receiveBuf, 0, recvMsgSize);
}
clntSock.close();
}
// 到達不能コード
}
}
下記のコードはネットワークインターフェース情報取得し、IPv6とIPv4のアドレスを取得、表示するサンプルコードです。
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
/**
* ネットワークインターフェースの取得
*/
public class InetAddressesInfo {
private HashMap<networkInterface, ArrayList<inetAddress>> interfaceMap;
public InetAddressesInfo() {
interfaceMap = new HashMap<networkInterface, ArrayList<inetAddress>>();
}
public void getInterfaces() {
interfaceMap.clear();
try {
Enumeration<networkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
if (interfaceList == null) {
System.out.println("Message: No interfaces found");
} else {
while (interfaceList.hasMoreElements()) {
NetworkInterface iface = interfaceList.nextElement();
Enumeration<inetAddress> addrList = iface.getInetAddresses();
if (!addrList.hasMoreElements()) continue;
ArrayList<inetAddress> iaddress = new ArrayList<inetAddress>();
while (addrList.hasMoreElements())
iaddress.add(addrList.nextElement());
interfaceMap.put(iface, iaddress);
}
}
} catch (SocketException se) {
System.out.println("Error getting network interfaces: " + se.getMessage());
}
}
public void show() {
for (NetworkInterface n : interfaceMap.keySet()) {
System.out.println("Interface " + n.getName() + ": ");
for (InetAddress a : interfaceMap.get(n)) {
System.out.print("\tAddress " + ((a instanceof Inet4Address ? "(IPv4)"
: (a instanceof Inet6Address ? "(IPv6)" : "(?)"))));
System.out.println(": " + a.getHostAddress());
}
}
}
public HashMap<networkInterface, ArrayList<inetAddress>> getInterfaceMap() {
return interfaceMap;
}
public void setInterfaceMap(
HashMap<networkInterface, ArrayList<inetAddress>> interfaceMap) {
this.interfaceMap = interfaceMap;
}
public static void main(String[] args) {
InetAddressesInfo i = new InetAddressesInfo();
i.getInterfaces();
i.show();
}
}
Interface lo:
Address (IPv6): 0:0:0:0:0:0:0:1
Address (IPv4): 127.0.0.1
Interface net4:
Address (IPv6): fe80:0:0:0:0:5efe:c0a8:10a%12
Interface net5:
Address (IPv6): 2001:0:4137:9e76:8ae:1cf7:3f57:fef5
Address (IPv6): fe80:0:0:0:8ae:1cf7:3f57:fef5%13
Interface eth3:
Address (IPv6): 2001:c90:33d:21d4:919c:836b:2d1a:cf33
Address (IPv6): 2001:c90:33d:21d4:8856:aef1:d0bd:db64
Address (IPv6): fe80:0:0:0:919c:836b:2d1a:cf33%11
Address (IPv4): 192.168.1.10
実は今までMac Bookに外部ディスプレイとキーボードを接続してデスクトップで開発していたのですが、Androidのエミュレータを起動していると地味に負荷が連続的にかかって発熱がひどくなってきたので、この度、Windows7 64bitのデスクトップPCを買いました。その際のAndroid開発環境のセットアップ(32bitと64bit環境)手順を以下に紹介します。
下記サイトよりJDKをダウンロード&インストール。 Java SE Downloads ダウンロードするファイルはWindows x64 と Windows の二つ。それぞれインストールする。 64bit版 はProgram Filesフォルダに、32bit版はProgram Files (x86) フォルダにインストールされる。
C:\>java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
下記サイトよりダウンロードする。 Android SDK | Android Developers 解凍後 SDK Setup.exe を実行する。その際に下記のようなエラーが発生した場合は、 画面左部のSettingsからチェックボックス Force https://... sources to be fetched using http;//... をチェックし、使用したいSDK Versionをインストールする。
Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml, reason: HTTPS SSL error. You might want to force download through HTTP in the settings.
下記サイトよりダウンロードする。 Eclipse Project Downloads 現在の最新バージョンのリンクをクリックし「Windows (x86_64)」が64bit版Eclipseなので、クリックしてダウンロード。 追記(2010-04-26):上記の手順の中で32bit版のJDK(with JRE)をインストールしているならば、下記の日本語版Eclipse(32bit版)を使用(pathも設定)してもOK(ちなみに私は結局この方法を採りました^^;)。 Pleiades - Eclipse プラグイン日本語化プラグイン
Eclipse のプラグインインストール画面で下記のURLを追加し、インストールする。 追記(2012-06-01):目にやさしいコードの配色は下記のXMLテーマを使用する。 Eclipse Color Themes 設定方法は、上部のメーニューバーより、 ウィンドウ > 設定 > 一般 > 外観 > 色テーマ > テーマのインポート よりダウンロードしたXMLファイルをインポート。 追記:上述は3.6想定でしたが、以下の手順でEclipse 3.7, Pleiades v1.3.3での日本語化ができましたので、ご参考下さい。 ■前提 Windows 7 64bit , java version “1.6.0_24″ ■ダウンロード ・http://www.eclipse.org/downloads/ のEclipse Classic 3.7の64bitをダウンロード。 ・http://mergedoc.sourceforge.jp/index.html のPleiades 1.3.3 本体ダウンロード。 ■インストール手順 1. eclipse-SDK-3.7-win32-x86_64.zipを適当なフォルダに解凍→eclipseフォルダが作成される。 2. pleiades_1.3.3.zipの中身を全てeclipseフォルダへ移動→移動中にポップアップ表示される「フォルダを統合しますか?」は「はい」で進める。 3. eclipseフォルダ内のeclipse.iniファイルの最終行に以下の文字列と最後に空行を追加(pleiadesのreadmeに記載のインストール手順)。 -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar 4. eclipse.exeをダブルクリック (-cleanオプションなしで初回起動) 5. workspaceディレクトリを設定後、日本語化されたEclipseが起動。使用されているjavaw.exeプロセスも64bit版が使用されていることを確認。
Servletで処理した結果をJSPファイルに転送し、HTMLを生成する。これによって、MVCモデルにおけるViewの分離ができる。
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
ArrayList<string[]> table = new ArrayList<string[]>(); // 転送データ
<中略>
req.setAttribute("table", table);
req.getRequestDispatcher("jsp/view.jsp").forward(req, res);
上記のServletコード上のtableという変数をview.jspに渡したす場合、HttpServletRequest #setAttributeで変数を登録し、getRequestDispatcherとforwardでリクエストをフォワードする。 JSP側で登録した変数を取り出すには、下記のコードを用いる。
<% ArrayList<string[]> table = (ArrayList<string[]>)request.getAttribute("table"); %>
1.ActivePerl(ActivePerl, Download Perl for Windows, Mac, Linux, AIX, HP-UX & Solaris) 2.Apache Ant(Apache Ant - Binary Distributions) 3.Sen(sen: ドキュメント & ファイル: release)