‘Java’ カテゴリーのアーカイブ

Android-ProgressDialogFragmentというライブラリを作りました。

1.Android-ProgressDialogFragmentというライブラリを作りました。
https://github.com/YuichiUchida/Android-ProgressDialogFragment
 ロード中はこういう感じになります。
1

2.今まではこういう感じに作っていました。
2
ListFragmentなどがこういう実装になっていますね。

この方式は下の画像のように2つの画面を重ね
ロード中にはコンテンツ部分を消し、プログレス画面を表示し、
ロードが終るとコンテンツを表示し、プログレス画面を消すという方式になっています。
3

長所としては、できあがった奇麗な画面だけを表示できることですが
たくさんの画面に使うと動作が重く感じるようになってきます。

このライブラリは、やり方はほとんど同じですが
コンテンツ部分を常に表示し、プログレス画面だけを制御します。

3.使い方
Gradleに下記のように追記します。

support-v4ライブラリを使う場合

dependencies {
    compile 'me.yuichi0301:pdfragment:1.1.+'
}

ライブラリを使用しない場合

dependencies {
    compile 'me.yuichi0301:pdfragment-native:1.1.+'
}

あとはProgressDialogFragment継承して使用します。

public class SampleFragment extends ProgressDialogFragment {
    // your code of fragment
}

ActionBarSherlockを使う場合

dependencies {
    compile 'com.android.support:support-v4:21.0.3'
    compile('me.yuichi0301:sherlockpdfragment:1.1.+') {
        exclude module: 'support-v4'
    }
}
public class SampleFragment extends SherlockProgressDialogFragment {
    // your code of fragment
}
Facebooktwittergoogle_pluslinkedintumblrmail

Eclipse RCPの作り方

Eclipse RCPの作り方を紹介します。

(といっても、久しぶりに作ろうと思ったら忘れていたので
今度は忘れないように自分のためのログですが・・。)

①Eclipse RCP
  Eclipse Rich Client Platformの略で、EclipseとJavaの資産が
  使えることが利点になります。

  さらに、一度ソースを書くとWindows Mac Linuxなど
  様々なOS用にコンパイルすることが出来ます。

②プラグインプロジェクトの作成
  Eclipseには内蔵ブラウザがあるので、ブラウザを使ったものを作ってみます。

  1.プラグインプロジェクトを選択します。


  2.リッチクライアントアプリケーションを作成の部分は「はい」を選択して下さい。
   「いいえ」を選択するとEclipseプラグインになります。

  3.特に機能はいらないので「Hello RCP」を選択します。

③とりあえず、起動する。

  右下にあるテストの項目の、「Eclipseアプリケーションの起動」をクリックします。

  何も無い画面だけが表示されます。

④ブラウザ表示用にViewを追加します。
  1.plugin.xmlを開きます。
  2.拡張タブを選択します。
  3.追加ボタンをクリックします。
  4.「org.eclipse.ui.views」を追加します。


  5.追加された「org.eclipse.ui.views」を右クリックして
   以下のようにviewを選択します。

  6.追加されたviewを選択して以下のように入力します。

  7.以下のように「com.lancard.mybrowser.view.MyBrowserView」クラスを作成します。

package com.lancard.mybrowser.view;

import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;

public class MyBrowserView extends ViewPart {

public static final String ID = "com.lancard.mybrowser.view.MyBrowserView";

private Browser browser = null;

public void createPartControl(Composite parent) {
Composite top = new Composite(parent, SWT.NONE);
RowLayout layout = new RowLayout(SWT.VERTICAL);
layout.wrap = true;
top.setLayout(layout);

browser(top);

}

private void browser(Composite top){
Composite obj = new Composite(top, SWT.NONE);
RowLayout layout = new RowLayout(SWT.HORIZONTAL);
layout.wrap = true;
obj.setLayout(layout);

browser = new Browser(obj,SWT.BORDER);
browser.setUrl("http://www.google.co.jp");
browser.setLayoutData(new RowData(800,500));
}

public void setFocus() {
}


}

⑤ブラウザを表示するコマンドを追加します。
  1.plugin.xmlを開きます。
  2.拡張タブを選択します。
  3.追加ボタンをクリックします。
  4.「org.eclipse.ui.commands」を追加します。


  5.追加された「org.eclipse.ui.commands」を右クリックして
   以下のようにcommandを選択します。

  6.追加されたcommandを選択して以下のように入力します。

  7.以下のように「com.lancard.mybrowser.action.MyBrowserAction」クラスを作成します。

package com.lancard.mybrowser.action;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;

import com.lancard.mybrowser.ICommandIds;

public class MyBrowserAction extends Action {

private final IWorkbenchWindow window;
private int instanceNum = 0;
private final String viewId;

public MyBrowserAction(IWorkbenchWindow window, String label, String viewId) {
this.window = window;
this.viewId = viewId;
        setText(label);
setId(ICommandIds.CMD_MY_BROWSER);
}

public void run() {
if(window != null) {
try {
window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
} catch (PartInitException e) {
MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
}
}
}
}

「com.lancard.mybrowser.ICommandIds」は以下のように記述します。

package com.lancard.mybrowser;

public interface ICommandIds {

    public static final String CMD_MY_BROWSER = "com.lancard.mybrowser.mybrowser";
    
}

⑥メニューを追加してみます。
  メニューを追加するには、自動的に作成されている
  「com.lancard.mybrowser.ApplicationActionBarAdvisor」クラスに以下のように記述します。

package com.lancard.mybrowser;

import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;

import com.lancard.mybrowser.action.MyBrowserAction;
import com.lancard.mybrowser.view.MyBrowserView;

public class ApplicationActionBarAdvisor extends ActionBarAdvisor {

    private MyBrowserAction myBrowserAction;
    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
        super(configurer);
    }

    protected void makeActions(IWorkbenchWindow window) {
    myBrowserAction = new MyBrowserAction(window, "ブラウザ", MyBrowserView.ID);
        register(myBrowserAction);
    }

    protected void fillMenuBar(IMenuManager menuBar) {
        MenuManager fileMenu = new MenuManager("&メニュー", IWorkbenchActionConstants.M_FILE);
        
        menuBar.add(fileMenu);
        
        fileMenu.add(myBrowserAction);
    }
    
}

⑦構成
この時点でプロジェクトの構成はこのようになっています。

⑧起動してみる。

  今度は右上にメニューが出来ていて中にはブラウザメニューがあります。

  ブラウザメニューを選択すると、作成したブラウザビューが表示されます。

⑨製品化する。
  このままだと、Eclipseを起動しないと使えないので製品化する作業をします。

  1.MyBrowserプロジェクトを選択して、右クリックします。
  2.新規メニューから製品構成を選択します。

  3.以下のように入力して、完了ボタンをクリックします。

    「MyBrowser.product」というファイルが追加されます。
  4.「MyBrowser.product」を開きます。
  5.概要タブを選択し、以下のように記述します。

    「新規」ボタンをクリックします。

    次のように入力して完了をクリックします。

    次のようになります。

  6.依存関係タブを選択し、追加ボタンをクリック。
    「MyBrowser」があると思うので選択して「OK」をクリック。

    「必須プラグインの追加」ボタンをクリックします。

  7.起動タブを選択し、以下のように入力します。

  8.概要タブのエクスポートの項目にある
   「Eclipse製品エクスポート・ウィザード」をクリックします。

    ディレクトリーは適当な場所にして、完了をクリックします。

  9.2つのフォルダが出来ます。

  10.mybrowserの中にある「MyBrowser」を起動します。

  11.ちゃんと動きました。
    しかし、ソース上に書いた文字は文字化けします。

⑩国際化対応
  文字がソース上にそのまま書いてあるため、文字化けしている状態になります。
  国際化対応するための機構があるので国際化対応します。

  1.「com.lancard.mybrowser.resource」パッケージを作成します。
  2.「custom_ja.properties」というファイルを作成します。

    ファイルの中は次のように記述します。
MENU=&メニュー
BROWSER=ブラウザ

  3.「com.lancard.mybrowser.CustomString」クラスを作成します。

package com.lancard.mybrowser;

import java.util.Locale;
import java.util.ResourceBundle;

public class CustomString {
private static final String BUNDLE_NAME = "com.lancard.mybrowser.resource.custom";
private static ResourceBundle rb = null;

public static void setBundle(Locale locale) {
try {
rb = ResourceBundle.getBundle(BUNDLE_NAME, locale);
} catch (Exception e) {
rb = ResourceBundle.getBundle(BUNDLE_NAME, Locale.JAPANESE);
}
}

public static String getString(String key) {
try {
String keyValue = new String(rb.getString(key).getBytes("ISO-8859-1"), "UTF-8");
return keyValue;
} catch (Exception e) {
e.printStackTrace();
return key;
}
}

}

  4.既に存在する「com.lancard.mybrowser.Application」クラスの
    startメソッドに次の一行を追加します。
    「CustomString.setBundle(Locale.getDefault());」

public Object start(IApplicationContext context) throws Exception {
CustomString.setBundle(Locale.getDefault());
Display display = PlatformUI.createDisplay();
try {
int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART)
return IApplication.EXIT_RESTART;
else
return IApplication.EXIT_OK;
} finally {
display.dispose();
}

}

  5.「com.lancard.mybrowser.ApplicationActionBarAdvisor」の
    文字部分を次のように書き換えます。

package com.lancard.mybrowser;

import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;

import com.lancard.mybrowser.action.MyBrowserAction;
import com.lancard.mybrowser.view.MyBrowserView;

public class ApplicationActionBarAdvisor extends ActionBarAdvisor {

    private MyBrowserAction myBrowserAction;
    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
        super(configurer);
    }

    protected void makeActions(IWorkbenchWindow window) {
    myBrowserAction = new MyBrowserAction(window, CustomString.getString("BROWSER"), MyBrowserView.ID);
        register(myBrowserAction);
    }

    protected void fillMenuBar(IMenuManager menuBar) {
        MenuManager fileMenu = new MenuManager(CustomString.getString("MENU"), IWorkbenchActionConstants.M_FILE);
        
        menuBar.add(fileMenu);
        
        fileMenu.add(myBrowserAction);
    }
    
}

  6.もう一度エクスポートします。
    今度は文字化けしていた部分もきちんと日本語が表示されました。

Facebooktwittergoogle_pluslinkedintumblrmail

Androidアプリのメモリリークを調査する

Androidでメモリリークを調査することがあったので手順を記述します。

1.Eclipseをダウンロードします。
    そこから!?と思うかもしれませんが一応書いておきます。

    http://www.eclipse.org/downloads/

    ここからEclipse Classic 4.2.1をダウンロードします。

    (※http://developer.android.com/sdk/index.htmlここから、
    EclipseとSDKが一括のものがダウンロード出来ますが
    プラグインが上手く入らなかったのでこれは使いませんでした。)

2.ADTをインストールします。
    1)Help→Install New Software
    2)addボタンを押して、以下のように設定します。
    3)適当に必要なものをインストールします。

3.BIRTプラグインをインストールします。
    1)Help→Install New Software
    2)Work withで「Juno – http://download.eclipse.org/releases/juno」を選択します。
    3)BIRTEnginをチェックします。
    4)インストールします。

4.Memory Analyzerプラグインをインストールします。
    1)Help→Install New Software
    2)Work withで「Juno – http://download.eclipse.org/releases/juno」を選択します。
    3)Memory Analyzerをチェックします。(Generale Purpose Toolsの中にあります。)
    4)インストールします。

5.DDMSのPerspectiveを開きます。
    1)対象のプロセスを選択して、「Dump HPROF file」を押します。
    2)表示されたダイアログで「Leak Suspects Report」をチェックし、「Finish」を押します。

メモリリークの詳細が表示されます。

Facebooktwittergoogle_pluslinkedintumblrmail

Androidで影を描いてみる。

ずっと前からブログのネタとして暖めていた、Androidで影を描く方法を書きたいと思います。

先に書いたソースを載せます。


import android.content.Context;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.view.View;

public class ShadowView extends View {

private Paint white = null;
private Paint black = null;
private Paint shadow = null;

private RectF rect = null;
private RectF shadowRect = null;

public ShadowView(Context context) {
super(context);

white = new Paint();
white.setColor(Color.WHITE);
white.setAntiAlias(true);

black = new Paint();
black.setStyle(Paint.Style.STROKE);
black.setAntiAlias(true);

shadow = new Paint();
shadow.setStyle(Paint.Style.FILL);
shadow.setColor(Color.argb(112, 0, 0, 0));
BlurMaskFilter blur = new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL);
shadow.setMaskFilter(blur);

rect = new RectF(50f,100f,250f,200f);

float diff = 30f;
shadowRect = new RectF(50f + diff,100f + diff,250f + diff,200f + diff);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

//背景を描画
drawBackground(canvas);

//角丸の矩形の影
canvas.drawRoundRect(shadowRect, 50, 50, shadow);

//角丸の矩形の背景(白)
canvas.drawRoundRect(rect, 50, 50, white);

//角丸の矩形の枠線(黒)
canvas.drawRoundRect(rect, 50, 50, black);
}

/**
 * 背景を描画
 * @param canvas
 */
private void drawBackground(Canvas canvas){
Paint paint = new Paint();
paint.setColor(Color.rgb(214, 233, 255));

int height = getHeight();
int width = getWidth();

int y = 0;
while(y

0)影が分かりやすいようになんとなく用意した背景

1)まず影をつけたいものを描きます。

2)それを右下にずらした矩形を作ります。

右下に30ずらしてます。
rect = new RectF(50f,100f,250f,200f);

float diff = 30f;
shadowRect = new RectF(50f + diff,100f + diff,250f + diff,200f + diff);

3)それを影っぽいペイントで描画します。

4)あとは、影→背景→枠の順で描画して完了。

なんか書いてみたら、ずっと暖めていた割に簡単だった・・。
暖めすぎたか・・。

ポイントは、影のペイントは、ぼかし効果をいれるところです。
BlurMaskFilter blur = new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL);

Facebooktwittergoogle_pluslinkedintumblrmail

OS X Mountain Lion セットアップ日記 2 Java&NetBeans

コードはNetBeansで書くことが多いので早速インストール!

Javaはいってないので無理いわれました。

「Java入れないとな〜」と検索したら下記ページを見つけました。

Mountain Lion (Mac OS X 10.8)にJavaをインストールする – memo.yomukaku.net

Java入ってない状態でターミナルで

java -version

とかしたらインストールのダイアログ出てくるのね。知らなかった。

Java入りました。こりゃ楽だ。再度 java -version してみましょう。

java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

おけおけ。

NetBeansは必要なのを選んでインストールするといいです。ボクは全部入り。

http://ja.netbeans.org/

特に調整せずに使ってもあまり困りません。Eclipseよりセットアップは楽だと思う。

ねこび〜んカワイイです。

Facebooktwittergoogle_pluslinkedintumblrmail

Wowza Media Server 2 でiPhoneへのオンデマンドストリーミング、ライブストリーミング

Wowza Media Serverのバージョン2が先日リリースされたのですが、Apple HTTP Live StreamingによるiPhoneへの配信が可能になりました。ということで試してみましたのでついでにCentOS5でのセットアップの手順を書きました。

Javaのインストール

[root@localhost ~]# yum install java

Wowza ServerのRPMインストール

WowzaサイトからLinux RPM版のURLを取得します。
また、実行に必要なシリアルNoも取得しておきます。(今回はWowza Server Developer Editionを取得しました。)

$ mkdir work
$ cd work
$ wget http://www.wowzamedia.com/downloads/WowzaMediaServer-2-0-0/WowzaMediaServer-2.0.0.rpm.bin
$ chmod +x WowzaMediaServer-2.0.0.rpm.bin
$ ./WowzaMediaServer-2.0.0.rpm.bin

Wowza Serverのライセンスキー設定及び実行

$ cd /usr/local/WowzaMediaServer/bin
$ ./startup.sh
Configure logging: file:///usr/local/WowzaMediaServer/conf/log4j.properties
Please enter serial number:
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX #ここでシリアルNoを入力

サーバが起動しますので、一旦Ctrl+Cで停止します。

自動起動の設定

$ chkconfig WowzaMediaServer on
$ chkconfig WowzaMediaServer --list
WowzaMediaServer0:off1:off2:on3:on4:on5:on6:off
$ /etc/rc.d/init.d/WowzaMediaServer start #再度、Wowzaを起動

サンプルのインストール

$ cd /usr/local/WowzaMediaServer/examples/
$ ./installall.sh

オンデマンドをiPhoneで試す

オンデマンドアプリケーションの作成、設定

$ cd /usr/local/WowzaMediaServer/conf/
$ mkdir vod
$ cp Application.xml vod/

http://hostname:1935/vod/mp4:Extremists.m4v/playlist.m3u8 にアクセスすると動画のストリーミングが開始されます。

ライブストリーミングをiPhoneで試す

ライブストリーミングアプリケーションの作成、設定

$ cd /usr/local/WowzaMediaServer/conf/
$ mkdir live
$ cp Application.xml live/
$ vi live/Application.xml
#Streams/StreamTypeをliveに変更
#Streams/LiveStreamPacketizersをcupertinostreamingpacketizerに変更(WowzaのドキュメントではStreamタグ内と書いてありませんでしたが、こちらに設定しないとうまくいきませんでした)
#RTP/Authentication/PlayMethodをnoneに変更
#RTP/Authentication/PublishMethodをnoneに変更

ウェブキャストアプリケーションのインストール、放送

ここではWireCastを使用します。
こちらからWireCastをダウンロード、インストールし起動

ウィンドウ下部で使用するカメラを選択
メニュー > 放送 > 放送セッティングを選択し下記セッティングを用意する

  • エンコーダープレ
    エンコーダプレコンボボックスから編集を選択。ここでは下記のようにしました。
  • デスティネーション
    QuickTime ストリーミングサーバに知らせる。
  • ホスト名
    hostname:1935
  • ロケーション
    live/myStream.sdp(myStream部分は別名可)
  • ユーザ名、パスワード
    なし(認証は試していません)
  • TCP経由ブロードキャスト
    なし

上記で保存。

ウィンドウ左上の放送アイコンをクリック。これで放送が開始されます。
http://hostname:1935/live/myStream.sdp/playlist.m3u8 にアクセスするとライブストリーミングが開始されます。

Facebooktwittergoogle_pluslinkedintumblrmail

JRuby兄弟、爆誕!

7月27日に行われた「福岡Rubyビジネス拠点推進会議 平成22年度総会」に行ってきました。私の場合正しくは、合わせて行われたRBC(Ruby Business Commons)の総会に行って来た、というべきかな(弊社は長崎ですからね)。

RBCブースのお手伝いが主目的だったのですが、講演もほとんど聞くことができました(まつもとさんのプレゼンは一部しか聞けなくて残念)。

私的に一番インパクトがデカかったのはJRuby兄弟(JRuby開発者、ThomasとCharlesの二人。翻訳して徹夜で字幕をつけてくれた片山さんによると「自称」らしい(笑))からのビデオメッセージ!

http://rubybizcommons.jp/ja/articles/2010/07/28/2010727-rubydays-2010/

RBCオフィシャルサイトの上記ページでまつもとさんのプレゼンテーション資料とともに公開されていますので、ぜひぜひ見てください。この二人が出てくるだけでなんだかなごんじゃうんですが、内容はエキサイティングですよ!

「cExtension APIを JRubyで利用出来るように挑戦しています」

とかね! JRubyやっぱ、好きや〜!

Facebooktwittergoogle_pluslinkedintumblrmail

OpenGrokをCentOS5にインストール

MOONGIFTさん経由で知ったのですが、OpenGrokはSCM(Subversion、Git、Mercurial等)上のソースコードを関数名、変数名その他で検索できるエンジンで、CDDLでオープンソースとして公開されています。この検索エンジンを使用する状況としては、「この関数ってどんな使い方?」、「某言語の某関数にバグがあるみたいなんだけど、うちのコードで使ってなかった?」といった時が考えられます。便利そうでしたのでCentOS5にインストールしてみました。

OpenGrokの動作に必要なctags、tomcat等をインストール

yum install ctags tomcat5 tomcat5-webapps
chkconfig tomcat5 on

OpenGrok用ディレクトリを作成

mkdir /var/opengrok/
mkdir /var/opengrok/bin
mkdir /var/opengrok/src #ここに解析対象のソースを置くことに
mkdir /var/opengrok/data
mkdir /var/opengrok/etc

OpenGrokをダウンロード・展開

mkdir work
cd work
wget
tar xzvf opengrok-0.9-rc1.tar.gz
mv opengrok-0.9-rc1/* /var/opengrok/

source.warを一度展開し、web.xmlを編集する

mkdir source
cd source
unzip /var/opengrok/lib/source.war
vi WEB-INF/web.xml
#下記を追加

  ...
  
    DATA_ROOT
    /var/opengrok/data
    REQUIRED: Full path of the directory where data files generated by OpenGrok are stored
  

  
    SRC_ROOT
    /var/opengrok/src
    REQUIRED: Full path to source tree
  

  
    SCAN_REPOS
    false
    Set this variable to true if you would like the web application to scan for external repositories (Mercurial)
   
   ...

zip -r source.war ./
mv source.war /var/opengrok/lib/
cp /var/opengrok/lib/source.war /var/lib/tomcat5/webapps/

何かソースを取得しておく

cd /var/opengrok/src
svn co file:///home/svn/project #何かチェックアウトしてみる

インデックス作成用スクリプトの編集

vi /var/opengrok/doc/run.sh
#!/bin/sh

#変更
PROGDIR=/var/opengrok

# REQUIRED The root of your source tree
#変更
SRC_ROOT=${PROGDIR}/src

# REQUIRED  The directory where the data files like
# Lucene index and hypertext cross-references are stored
#変更
DATA_ROOT=${PROGDIR}/data

# OPTIONAL A tab separated files that contains small
# descriptions for paths in the source tree
PATH_DESC=${PROGDIR}/doc/paths.tsv

# A modern Exubrant Ctags program
# from http://ctags.sf.net
#変更
EXUB_CTAGS=/usr/bin/ctags

# If you need to set properties (Ex. override the mercurial binary)
#PROPERTIES=-Dorg.opensolaris.opengrok.history.Mercurial=/home/trond/bin/hg

# Uncomment the following line if your source contains Mercurial repositories.
# SCAN_FOR_REPOS="-S"

# You might want to add more available memory, and perhaps use a server jvm?
#JAVA_OPTS="-server -Xmx1024m"

LOGGER="-Djava.util.logging.config.file=logging.properties"

#変更
java ${JAVA_OPTS} ${PROPERTIES} ${LOGGER} -jar ${PROGDIR}/lib/opengrok.jar ${SCAN_FOR_REPOS} -c ${EXUB_CTAGS} -W ${PROGDIR}/etc/configuration.xml -P -S -v -s ${SRC_ROOT} -d ${DATA_ROOT}

# OPTIONAL
java ${LOGGER} -classpath ${PROGDIR}/lib/opengrok.jar org.opensolaris.opengrok.web.EftarFile ${PATH_DESC} ${DATA_ROOT}/index/dtags.eftar
chmod +x /var/opengrok/doc/run.sh

インデックス作成スクリプトの実行

/var/opengrok/doc/run.sh #このスクリプトをcron等で定期実行する

Tomcatの起動

/etc/rc.d/init.d/tomcat5 start

http://hostname:8080/source/ にアクセスし確認

Facebooktwittergoogle_pluslinkedintumblrmail