JTA

JTA最新版)はWebminなどに使われているのですが、なぜかうまく使えないです。Java2 SE 5.0 がいけないのか、何がいけないのかよくわからないのですが、セキュリティポリシの問題のような感じもします。

コンソールからはきちんと使えます。次のようにするとGUI画面がでるので、そこで接続先を指定するとアクセスできます。公開鍵方式による接続はできないようなのが残念です。

C:\jta> java -cp jta26.jar de.mud.jta.Main -plugins Status,Socket,SSH,Terminal,Script
カテゴリー: Java

Bug

バグをみつけたが、ソースをきちんと全部調べる気力はないまま、対応してみたら動いたのでよしとする。

カテゴリー: Java

BeanShell

BeanShell – Lightweight Scripting for Javaは結構面白いです。Download から bsh-2.0b4.jar をダウンロードします。ソースコードに興味のある人はBeanShell Developer’s Areaからダウンロードします。

使い方はいたって簡単で、c:bshにbsh-2.0b4.jarをおいたとすると、コマンドプロンプトを起動して次のように入力するだけです。

java -cp c:bshbsh-2.0b4.jar bsh.Interpreter

GUIバージョンはbsh-2.0b4.jarをダブルクリックすると使えます。これ以外にもremoteモードとかあるようです。

コマンドプロンプトから入力を受け付けるには、次のようにします。

bsh % BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
bsh % a=reader.readLine();
hello
bsh % System.out.println(a);
hello

カテゴリー: Java

SwingUtilities

SwingUtilitiesのinvokeAndWaitメソッドのサンプル。Swingではイベントの投入やGUI描画に影響する値の設定は直接するのではなく、invokeAndWaitメソッドやinvokeLaterメソッドで行います。

package org.sssg.soft.sample.swingutil;

import javax.swing.JFrame;

import javax.swing.SwingUtilities;

public class Sample extends JFrame{
    public Sample() {
        super("Sample");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100,100,200,100);
        setVisible(true);
    }
    public void createThread() {
        Thread thread = new Thread() {
            public void run() {
                try {
                    SwingUtilities.invokeAndWait(new Runnable() {
                        public void run() {
                            System.out.println(
                                "This method call by event dispatch thread" + Thread.currentThread());
                        }
                    });
                } catch (Exception e) {
                    e.printStackTrace();
                }
                System.out.println("This method call by thread. " + Thread.currentThread());
            }
        };
        thread.start();
    }

    public static void main(String[] args) {
        Sample s = new Sample();
        s.createThread();
    }
}

カテゴリー: Java