そろそろ実機へ入れてみて遊んでみようと思う次第。
「Java」カテゴリーアーカイブ
Android Icons
Android Iconsというものがあるそうです。結構カッコいいアイコンのセットがあるので、利用を考えてみてもいいかも。
JDKアップデート後のNetBeans設定変更
JDKアップデート後はNetBeansの設定を変更する必要があります。NetBeans のインストールディレクトリを%NETBEANS_HOME%とすると、%NETBEANS_HOME%\etc フォルダにあるnetbeans.confを修正します。このファイルに指定されているnetbeans_jdkhome の値を変更します。
【改訂版】Eclipseではじめるプログラミング(15)
【改訂版】Eclipseではじめるプログラミング(15)が公開されています。
com.sun.net.httpserver.HttpServer
Java SE 6 から、com.sun.net.httpserver.HttpServer という簡易Webサーバが内蔵されているということなので、それを使ってみる簡単なプログラムを作成してみました。Jettyを使うまでもないときに重宝しそうです。
import java.io.OutputStream;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
public class Httpd {
final static private int PORT = 8081;
private String message = "Hello com.sun.net.httpserver.HttpServer.";
private HttpServer server;
private HttpHandler handler;
public Httpd() {
handler = new HttpHandler() {
public void handle(HttpExchange he) throws IOException {
System.out.print(new java.util.Date());
OutputStream os = null;
try {
os = he.getResponseBody();
he.sendResponseHeaders(200, 0);
os.write(message.getBytes());
} finally {
if (os != null) os.close();
}
System.out.println("\t" + message);
}
};
}
public void run() {
try {
server = HttpServer.create(new InetSocketAddress(PORT), 0);
} catch (IOException e) {
e.printStackTrace();
}
server.createContext("/", handler);
server.start();
}
public static void main(String[] args) {
try {
Httpd httpd = new Httpd();
httpd.run();
} catch (Exception e) {
e.printStackTrace();
}
}
}
ブラウザで http://localhost:8081/ へアクセスすると、下記のような実行結果になります。
Sat Apr 03 15:03:09 JST 2010 Hello com.sun.net.httpserver.HttpServer.
ブラウザには下記メッセージが表示されます。
Hello com.sun.net.httpserver.HttpServer.
try … catch
あるファイルを読み込んで処理をしている最中のエラーについて、何行目でエラーが発生しているかを確認しようとおもって、「try catch」を使っていたのですが、全然効果がありません。
はまったのですが、結局、catch していた例外がIOExceptionで、発生しているExceptionは別の型だったので、追加した処理は実行されていなかったのでした。とりあえずException全部をcatchするようにして対応しました。
ちょっとしたツールで、結構前に作ったものなので、処理を忘れてしまっていたのが、はまった原因ですが、こういう単純なミスほど気づきにくいものです。
JavaでJavaScript
JavaScriptをJavaで実行するプログラムは簡単に作れるので、ちょっと用意してみた。Java6ではRhinoが同梱されていますが、その挙動を確認するのに便利です。直接書き込む方法と、a.jsというファイルを用意して読み込む方法と、両方用意してみました。
import java.io.*;
public class Script {
public static void main(String[] args) throws Exception {
Script app = new Script();
app.run1();
app.run2();
}
public void run1() throws Exception {
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine engine = m.getEngineByName("JavaScript");
try {
engine.eval("print(‘Hello, world!’)");
} catch (ScriptException e) {
e.printStackTrace();
}
}
public void run2() throws Exception {
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine engine = m.getEngineByName("ECMAScript");
InputStream is =
this.getClass().getResourceAsStream("a.js");
try {
Reader reader = new InputStreamReader(is);
engine.eval(reader);
} catch (ScriptException e) {
e.printStackTrace();
}
}
}
ちなみに、a.js の内容は次のような感じの内容。
var itemTitle = "&abc&def&";
re1 = new RegExp("&", "g");
itemTitle = itemTitle.replace(re1, "&");
print(itemTitle);