ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2013年6月10日月曜日

20130610[Java][CentOS]Javaのアップデート

javaのアップデートを行いました。
以前と方法が変わっていたので新しい方法を習得しました。


参考サイト:
http://memo.yomukaku.net/entries/UhgMUdw



2011年2月13日日曜日

アドレスの正規表現

文字情報にアドレス情報があった場合、一括置換を行い、"URL_Info"とする。

[code]
String text = "http://[\w\d/%#$&?()~_.=+-]+";
Pattern p = Pattern.compile("http://[\w\d/%#$&?()~_.=+-]+");
Matcher m = p.matcher(text);
String replaced = m.replaceFirst("URL_Info");
System.out.println(replaced);
[/code]

参考サイト:JAVA開発メモ

2010年8月9日月曜日

Javaのコンストラクタの覚え書き

クラスの連携においてコンストラクタを使用する時の注意事項

コンストラクタとは?
インスタンスを生成する際、初期化処理をするために定義する特別なメソッド

コンストラクタの特徴
  • メソッド名とクラス名が必ず同じである

  • 戻り値は指定できない

  • 引数の異なるコンストラクタを複数定義可能

  • コンストラクタ自体を省略することも可能




  • クラスのコンストラクタの有無の違い
    1)コンストラクタのないクラス
    「デフォルトコンストラクタ」があるとみなされる
    -->この場合、引数無し,処理無し

    2)コンストラクタがあるクラス
    自分が用意したコンストラクタのどれかひとつを必ず利用する必要がある
    ※デフォルトコンストラクタはない

    [code]
    public class Person {
    public int age;

    public Person() {
    age = 0;
    }
    }
    [/code]

    複数定義した場合は下記のようになる
    [code]
    public class Person {
    public int age;

    public Person() {
    age = 0;
    }

    public Person(int a) {
    age = a;
    }
    }
    [/code]

    資料:(128ページあたり)http://www.knowledge-ex.jp/opendoc/JavaProgramming.pdf

    2010年3月14日日曜日

    Javaのアップデート方法1

    前にHadoop機を組み立てているときに、nicが認識されないことで苦戦していたら、

    ご学友の方に[CentOS]5.4を入れればnicが自然に認識されるよとお教えいただいた。

    みると[CentOS]5.4のデフォルトのJavaは1.4だったので、アップデートしようとしていたところ、

    [JDK1.6]をインストールして、java -version コマンドを打ってもVersion1.4が表示されるのが、なぜかわからなかった。
    いちおうインストールするディレクトリは、前回から変更して/usr/javaにすることにした。
    先にchmodで実行権限を付与する。
    [plain][root@hdp_master java]# chmod 705 jdk-6u18-linux-i586-rpm.bin
    [/plain]
    インストール開始[plain]
    [root@hdp_master java]# ./jdk-6u13-linux-i586-rpm.bin
    [/plain]
    ライセンスのとろこは、spaceキーで飛ばしていき、yesを入力

    Press Enter to continue…..  //空enterを押下。
    Done. //インストール完了!!

    環境設定
    [plain][root@hdp_master java]# vi /etc/profile[/plain]
    /etc/profileの下段に3行を追加する(環境設定)
    [plain]
    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
    [/plain]
    設定内容を反映

    [plain][root@hdp_master java]# source /etc/profile[/plain]

    コンパイル&実行環境の設定
    シンボリックリンクがデフォルトの/usr/bin/javaを指しているので、
    あたらしいjavaを指すように設定する
    念のためjdkが使用されているバージョンを確認
    [plain][root@hdp_master java]# alternatives --display java[/plain]
    新しいjavaを読むように追加する
    [plain][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 を押して現在の選択 [+] を保持するか、選択番号を入力します:[/plain]
    ここで2を入力してenterを押下して完了。

    最後に、java -versionと javac -versionでバージョンが同じになっていることを確認!

    参考URL: http://blog.livedoor.jp/incomplete_7/archives/51918829.html

    2010年1月15日金曜日

    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

    2009年12月9日水曜日

    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) {
    }
    }
    }
    }

    2009年11月7日土曜日

    独習デザインパターンから

    デザインパターンとは
    パターンは繰り返し使用される。
    パターンは経験を通じて発見された物である。
    パターンは問題に対する解決策である。
    パターンには適用箇所が存在する。
    パターンは様々に粒度で存在する
    パターンは理解の単位である。
    パターンは伝達の単位である。

    ソフトウェアにおけるパターン
    ・アーキテクチャパターン(MVC・・・Model、 View、 Controller)
    ・アナリシスパターン(パーティパターン)
    ・デザインパターン
    ・イディオム(特定のプログラミングに特化したパターン)

    デザインパターンの概要
    デザインパターンのメリット
    ・共通の語彙を提供できる
    ・メリット・デメリットを把握されている
    ・設計の考察を与えてくれる
    ・設計の目標を与えてくれる
    ・問題の解決策を与えてくれる
    ・適用できる範囲が広い
    ・優れた設計を効率的に習得できる





    株式会社テクノロジックアート

    翔泳社

    発売日:2004-01-24





    例をJavaのソースコードと一緒に列挙している。使用頻度の高い順に章立てされており身近なシステムの例をあげているため分かり易い。Javaの基礎を理解している人向けだが、そうでなくてもUML図も盛り込まれているのでデザインパターンを理解する上では大変分かり易いと思う。

    2009年10月29日木曜日

    TomcatでHelloWorld

    サーブレット&JSPの学習をはじめました。まずHelloWorldから。

    まずディレクトリ構造をこのように設定しておく。

    次に↓のディレクトリに



    ソースコードは↓とします。
    [php]

    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();
    }
    }

    [/php]

    そしてコンパイルをおこなう

    [php]
    javac -classpath /usr/local/tomcat/lib/servlet-api.jar HelloWorld.java
    [/php]
    なにも出なかったら成功です。


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


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


    [php]

    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">



    hello
    HelloWorld




    hello


    /xxxx




    [/php]

    次にTomcatを再起動します。
    /etc/rc.d/init.d/tomcat restart

    再起動ができたら、ファイルを作成したアドレスにアクセスして
    結果を確認します。

    http://192.168.3.7/tomcat/hogehoge/xxxx

    するとこのような画面が確認できます。


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

    2009年10月20日火曜日

    indexesの設定(GAE-J)

    Google App Engine for JAVA のindexesの設定方法がわかったので備忘録として残しておく。

    わたしはIDEをeclipseでといいますか、ほとんどがEclipseをご使用のことでしょう。
    さてファイル作成手順です。
    ファイル→新規(N)→表題なしのテキスト・ファイル→ブランクのファイルの新規作成を行います。
    [php]

    autoGenerate="false">





    [/php]

    その後、↑上のソースコードをコピペします。
    今度は保存。

    ファイル→別名保管→”親フォルダを入力または選択(E):"
    に現在作成中のEclipseのディレクトリの
    "WEB-INF/"の下に"datastore-indexes.xml"という名前で
    "ファイル名(F):"を入力し、OKボタンを押下する。

    そしてDeployす。

    するとどうでしょう。
    このようなメッセージがコンソール上に現れると成功です!!
    Compiling module org.osrk.nextschool.App_nextschool
    Compiling 6 permutations
    Permutation compile succeeded
    Linking into C:\Users\SEIJI\workspace\app-nextschool\war
    Link succeeded
    Compilation succeeded -- 11.986s
    Creating staging directory
    Scanning for jsp files.
    Scanning files on local disk.
    Initiating update.
    Cloning 31 static files.
    Cloning 55 application files.
    Uploading 2 files.
    Uploaded 1 files.
    Uploaded 2 files.
    Deploying new version.
    Will check again in 1 seconds
    Will check again in 2 seconds
    Will check again in 4 seconds
    Closing update: new version is ready to start serving.
    Uploading index definitions.
    Deployment completed successfully

    2009年10月8日木曜日

    Servlet&JSPのリスト表示を許可する方法

    [php]

    default
    org.apache.catalina.servlets.DefaultServlet

    debug
    0


    listings
    false

    1

    [/php]
    10行目のparamをfalseからtrueへ変更します。
    [php num=10]true[/php]

    するとリスト内の格納されているファイル類が表示される。

    2009年10月1日木曜日

    ディレクトリー内部のファイル類を表示

    ディレクトリ内部を表示させる方法

    [java]
    import java.io.*;
    public class FileTest2 {
    public static void main(String args[]){
    File cdirectory = new File("/home/admin/Desktop/JAVA_training");
    File filelist[] = cdirectory.listFiles();
    for (int i = 0 ; i < filelist.length ; i++){
    if(filelist[i].isFile()){
    System.out.println("[F]" + filelist[i].getName());
    }else if(filelist[i].isDirectory()){
    System.out.println("[D]" + filelist[i].getName());
    }else {
    System.err.println("[?}"+filelist[i].getName());
    }
    }
    }
    }
    [/java]
    ディレクトリの中身を参照する
    [java num=4]
    File cdirectory = new File("/home/admin/Desktop/JAVA_training");
    [/java]
    thanks to:http://www.javadrive.jp/start/file/index2.html

    2009年9月14日月曜日

    Javaアーカイバーの環境設定(CIA編)

    「集合知インアクション」のサンプルをいろいろと試すにあたり、自宅サーバーのJAVAの環境設定ができていないことに気がつき修正を行った。

    まず.jarファイルの格納ディレクトリが、ここ( /usr/local/CIA/lib )にしているので、環境変数の設定を行う。

    [root@nexserver conf]# vi /etc/profile ←該当のファイルを開く
    開いたら、JAVA_HOMEの後ろに” : ”を入れて:$JAVA_HOME/usr/local/CIA/lib と追加する

    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.ja:$JAVA_HOME/usr/lo
    cal/CIA/lib



    こんな感じです。

    ESCキーを押して編集モードから復帰させ、「:wq」を入力して保存します。

    それで、編集した設定を有効にするためのコマンドを入力します。

    [root@nexserver lib]# source /etc/profile

    これで設定が完了。

    試してみます。

    JAVAのアーカイバーの移動

    javaのARchiver(アーカイバー)を一カ所にまとめておいた方がよいと思い、一カ所にアーカイバーを集合させた。

    その前にJAVAのディレクトリがどこにあるか把握しておくことが必要だったから、
    whereis java で確認。
    [root@nexserver java]# whereis java
    java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java

    これらの中身を確認。
    /usr/bin/java ・・・binaryファイル
    /etc/java  ・・・ font.properties java.conf jpackage-release security が入っている。
    /usr/lib/java  ・・・空っぽ
    /usr/share/java ・・・jarがたくさん入っている。

    なので/usr/share/java に集合させることに。

    使用するjarは、CIAのもので
    commons-codec-1.3.jar
    commons-httpclient-3.0.1.jar
    commons-logging-1.1.jar
    lucene-core-2.2.0.jar
    weka.jar
    xercesImpl-2.6.2.jar

    があるので、これらを

    [root@nexserver lib]# mv *.jar /usr/share/java

    で移動しました。
    それできちんと移動できているか確認
    [root@nexserver lib]# cd /usr/share/java
    [root@nexserver java]# ls -a
    . gcj-endorsed tomcat5-jsp-2.0-api.jar
    .. gnu-classpath-tools-gjdoc-0.7.7.jar tomcat5-servlet-2.4-api-5.5.23.jar
    antlr-2.7.6.jar gnu-classpath-tools-gjdoc.jar tomcat5-servlet-2.4-api.jar
    antlr.jar hsqldb-1.8.0.9.jar weka.jar
    bsf-2.3.0.jar hsqldb.jar xalan-j2-2.7.0.jar
    bsf.jar jaxp_parser_impl.jar xalan-j2-serializer-2.7.0.jar
    bsh-1.3.0.jar jaxp_transform_impl.jar xalan-j2-serializer.jar
    bsh.jar jsp.jar xalan-j2.jar
    com-sun-javadoc-0.7.7.jar jspapi.jar xerces-j2-2.7.1.jar
    com-sun-javadoc.jar libgcj-4.1.1.jar xerces-j2.jar
    com-sun-tools-doclets-Taglet-0.7.7.jar libgcj-4.1.2.jar xercesImpl-2.6.2.jar
    com-sun-tools-doclets-Taglet.jar libgcj-tools-4.1.1.jar xml-commons-apis-1.3.02.jar
    commons-codec-1.3.jar libgcj-tools-4.1.2.jar xml-commons-apis.jar
    commons-httpclient-3.0.1.jar lucene-core-2.2.0.jar xml-commons-resolver-1.1.jar
    commons-logging-1.1.jar servlet.jar xml-commons-resolver.jar
    dom3-xerces-j2-2.7.1.jar servletapi5.jar
    dom3-xerces-j2.jar tomcat5-jsp-2.0-api-5.5.23.jar

    無事に移動できているようです。

    2009年8月7日金曜日

    Java World Day 2009に参加して(1)

    Java World Day 2009に参加してきた。セミナー内容と会場共に充実していた。
    自分が特に気になったのは、Sun Microsystems社とスティルハウス社のセミナーだった。
    忘れないうちに記しておく。

    Sun Cloudアーキテクチャ

    は以下の4項目の戦略が

    1. Conpute Service

    2. Virtual Datacenter経由での管理を行う。AWS EC2ににたAPIを提供している。
    3. Virtual DataCenter

    4. ドラッグ&ドロップにて構築済のコンポーネントを設計が可能。
      クラウドへ適用。
    5. Open API

    6. Project Kenaiというプロジェクトや各APIを提供。
    7. Storage Service

    8. WebDAV経由でファイル操作が可能。



    Virtual Datacenterの設定手順:
    1)WANとルーターが表示されている。
    2)Hadoopをルーターのノードに必要数設定する。
    3)WANとルーターの間にファイヤーウォールを設定する。
    ここでグローバルIPを設定する。
    4)最後にファイヤーウォールとルーターを接続する。
    5)以上

    2009年7月30日木曜日

    JAVAの基本設定

    ゼミの学習会で、Hadoopパッケージに含まれているJAVAと本家SUNのJAVAは全く違うところがあるそうなので
    本家のJavaを利用する。とアドバイスを頂いた。
    またTomcatもJavaのバージョン依存も関係してくるので基本的なことだけど忘れたら大変なので書き記しておく。

    [root@nexserver ~]# javac -J-version ←(コンパイラのバージョン)
    java version "1.6.0_13"
    Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
    Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)
    [root@nexserver ~]# java -version ←(Javaのバージョン)
    java version "1.6.0_13"
    Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
    Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)

    コンパイラとJAVAのバージョンは同じでなくてはいけない。

    違った場合は、インストールし直す。ここを見ながら。 あとここも役にたった。

    [root@nexserver ~]# vi /etc/profile ← 環境変数設定ファイルを編集
    以下を最終行へ追加
    export JAVA_HOME=/usr/java/default
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

    [root@nexserver ~]# source /etc/profile ← 環境変数設定を反映させる。(変更したファイル名をsourceで指定する)

    2009年7月6日月曜日

    理工セミナー受講

    JAVAセミナーを受講してきました。
    講師・TAは理工生でとても穏やかで丁寧な説明でした。

    JAVAは、というかプログラミング全般でしょうか?とにかくコードをたくさん書く事によって不安要素が取り除かれると仰っておりました。
    経験からくる言葉に重みがあり、その言葉を聞けたことだけでも参加した甲斐がありました。

    そういえば流行や理論ばかりで、自身で実践していなかった気がします。

    がんばろうと思いました。

    ※スーパーコンピュータと云うものでしょうか、とにかくショーウィンドウの中に高性能サーバーがありました。はやり『かっこいいなあ』と思ってしまいました。

    2009年6月29日月曜日

    Java related tools

    JUNG — the Java Universal Network/Graph Framework--is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network. It is written in Java, which allows JUNG-based applications to make use of the extensive built-in capabilities of the Java API, as well as those of other existing third-party Java libraries.

    Jena is a Java framework for building Semantic Web applications. It provides a programmatic environment for RDFRDFSand OWLSPARQL and includes a rule-based inference engine.

    2009年6月17日水曜日

    JDMについて(1)

    >>JDMについて<<
    JDMはデータマイニングの標準APIでWEKA APIの標準API。
    JSR 73(JDM1.0)の作業は2000年7月に始まり、2004年8月に最新版がリリース。
    2つ目のJSR 247(JDM2.0)は2004年にプロジェクトがスタートし、2006年12月に公開レビュードラフトが承認。

    5つのアルゴリズムの操作が可能。

    1)属性重要度・・出力変数を予測するときに、重要度となる属性をランク付けする。
    2)相関ルール・・同時に起こるアイテムを考察し、関係を発見する。
    3)クラスタリング・・類似したデータ点のクラスタを見つけ出す。
    4)回帰・・入力属性にもとづいて、出力変数の値を予測する。
    5)分類・・離散属性を列挙値のひとつに分類する。

    モデルの構築、評価、適用、保存の操作もサポート。
    JDM2.0からは多変量解析、時系列分析、異常検出、変換、テキストマイニング、多目標モデル、モデル比較が追加。

    ◆主なJDMオブジェクト

    JDMクラス群ではトップクラスのインターフェースであり、名前や説明などの基本情報を持ち、DMEによってMORに保存できる。データの物理的な側面(PhysicalDataSet)と論理的な側面(LogicalData)の両方が存在する。

    ◆学習モデル

    出力は、Modelインターフェースで表現され、MiningObjectを継承するModelは、複数の基底クラスになる。各モデルはModelDetailを持ち、アルゴリズム固有の変数はModelDetailで表現される。

    ◆アルゴリズムの設定
    ArgorithmSettingは設定を保持する共通基底クラス。KMeansSettingはk平均法の設定となる。

    ◆JDMタスク
    主なタスクタイプは5つ。
    1)モデルの構築、2)モデルの評価、3)統計値の計算、4)モデルの適用、5)MORからの入出力に関するタスク。TASKオブジェクトは、参照、再実行、実行が可能。

    ◆JDMを使った接続
    Java Connection Architecture(JCA)を使用してDMEに接続する事ができる。
    JNDIでConnectionFactoryインスタンスを取得し、ConnectionFactoryにユーザー名とパスワードを指定する。JDBCプロトコルのConnectionオブジェクトに似ている。

    ◆JDMモデルとPMML
    PMML(Predictive Model Markup Language:予測モデルマークアップ言語)はDMG(Data Mining Group)が予測モデルを表現するために策定したXMLベースの標準言語

    Data source from 集合知イン・アクション(ソフトバンククリエイティブ)

    2009年6月15日月曜日

    WEKAについて(1)

    WEKA(ウェカ:Waikato Environment for Knowledge Analysis)はjavaで書かれたデータマイニングアルゴリズムのオープンソースソフトウェアである。ニュージーランドのワイカト大学で開発されてGNUで提供されている。2006年9月にオープンソースBIの開発ベンダーであるPentahoに買収された。
    WEKAには、前処理、分類、回帰、クラスタリング、相関ルール、視覚化ルールが含まれている。

    WEKAには重要なパッケージが6つある。
    weka.coreパッケージは、他のパッケージから使われる共通コンポーネントを含む主なパッケージであり、属性、データセット、コンバータ、行列操作、テキスト分析、ソート表現、XMLをモデル化するクラスである。データセットを表現するためのクラスが含まれており、その各データセットはInstancesクラスによってあらわされる。Instancesクラスは事例をあらわすInstancesクラスのリストを持ち、各インスタンスは0個以上の属性を持つ。

    weka.classifierは、分類アルゴリズムの実装を含む、数量予測のアルゴリズムであり、Instancesを使ってモデルを学習し、その学習したデータを分類する。。

    weka.clustererは、クラスタリングアルゴリズムの実装を含み、Instancesからクラスタを作成し、その後、Instanceを適切なクラスタに分類する。

    weka.attributeselectionは、属性選択に関するアルゴリズム。

    weka.associationsは、相関ルールの発見に関するアルゴリズム。AprioriとPredictive Aprioriの2つのアルゴリズムが含まれている。この2つは相関ルールの学習に使用され、Associatorインターフェースを継承する。
    CARuleMinerは、クラスタ相関ルールを作成できるアルゴリズムに付与される。オプショナルインターフェースである。

    weka.filtersはデータセットへのフィルタの適用に関するクラス、たとえばある属性を分析対象から外すためのものに使用される。

    Data source from 集合知イン・アクション(ソフトバンククリエイティブ)