setenv CVSROOT :pserver:anoncvs@sldl1.slac.stanford.edu:/nfs/slac/g/jas/cvsroot cvs login CVS Password: jascvs cvs co -r v2_2_1 jasまた、 ダウンロードページに入って取る方法もある。
次のようなファイルががロードされる。
License.html ReleaseNotes.html SampleData/ bin/ extensions/ jas* lib/ ./SampleData: pawdemo.hbook ./bin: libhbook.so libjhippo.so libjstdhep.so ./extensions: Fitting.jar FlatFile.jar HepEvt.jar Hippo.jar Paw.jar TestServer.jar ./lib: collections.jar hep.jar jc.jar swingall.jar help.jar jas.jar jh.jar xml4j.jar
そして次はCLASSPATHとLD_LIBRARY_PATHにJAS関連のファイル名を 追加することである。CLASSPATHでは
% setenv CLASSPATH $CLASSPATH\:/home/yasu/java/JAS/lib/jas.jarまた、LD_LIBRARY_PATHもHBOOK関連のデータフォーマットが必要なら
% setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH\:/home/yasu/java/JAS/bin/libhbook.soとして追加しておくこと。 最後に、jasコマンドをPATHに追加すか、jasを/usr/local/binなどに入れておくこと。
% setenv PATH $PATH\:/home/yasu/java/JAS/
次の例題はJava Memory Usageを動的に表示するプログラムである。
import jas.hist.*; import jas.hist.test.MemoryDataSource; import javax.swing.*; public class Example1 extends JFrame { Example1() { super("Example 1"); JASHist plot = new JASHist(); JASHistData data = plot.addData(new MemoryDataSource()); plot.setTitle("Java Memory Usage"); plot.setDataAreaBorderType(plot.ETCHED); plot.getYAxis().setLabel("MBytes"); plot.getXAxis().setLabel("Time (seconds)"); plot.setAllowUserInteraction(false); data.show(true); getContentPane().add(plot); setSize(400,400); show(); } public static void main(String[] argv) { new Example1(); } } |
コンパイルと実行はつぎのようにする。
% javac Example1.java % java Example1そうすると、新しくウインドーが開いてこのJavaプログラムのメモリの使用量が 動的に表示される。
次の例題はプログラムの中に簡単なデータアレーを用意し、ヒストグラムを 作る。
import jas.hist.*; import javax.swing.*; public class Example2 extends JFrame { Example2() { super("Example 2"); JASHist plot = new JASHist(); double[] data = { 0, 1, 3, 5, 7, 9, 11, 13, 5, 0 }; plot.addData(new ArrayDataSource(data)).show(true); getContentPane().add(plot); setSize(400,400); show(); } public static void main(String[] argv) { new Example2(); } } |
import jas.hist.*; class ArrayDataSource implements Rebinnable1DHistogramData { ArrayDataSource(double[] data) { this(data,"Array Data Source"); } ArrayDataSource(double[] data, String name) { this.data = data; this.name = name; } public double[][] rebin(int rBins, double rMin, double rMax, boolean wantErrors, boolean hurry) { double[][] result = { data }; return result; } public String[] getAxisLabels() { return null; } public double getMin() { return 0; } public double getMax() { return data.length; } public boolean isRebinnable() { return false; } public int getBins() { return data.length; } public int getAxisType() { return DOUBLE; } public String getTitle() { return name; } private double[] data; private String name; } |