木曜日, 4月 30, 2009
水曜日, 4月 29, 2009
让gas汇编器输出纯粹机器指令?
让gas汇编器输出纯粹机器指令?
or
Using as
Documentation for binutils 2.19
as -o test.o test.s
ld -s -Ttext 0 --oformat binary -o test test.o
or
as -o test.o test.s
objcopy -O binary test.o test
Using as
Documentation for binutils 2.19
日曜日, 4月 26, 2009
Turn off Minix?
When you see a prompt like "d0p0s0>_", it means you are in the "boot
monitor", the Minix bootstrapper. The boot monitor is a very simple
program capable which does not keep any volatile information (unlike Minix
itself). So, if your system is dead in the boot monitor, you can at least
safely power off.
monitor", the Minix bootstrapper. The boot monitor is a very simple
program capable which does not keep any volatile information (unlike Minix
itself). So, if your system is dead in the boot monitor, you can at least
safely power off.
shutdown -x 'off'
金曜日, 4月 24, 2009
木曜日, 4月 23, 2009
bochsdbgでブートコードを走らせる
AT互換機におけるブートプロセス
ブートコードは0x7c00番地に読み込まれてから実行されるのであって、そこでブレークポイントをブートコードの開始番地である0x7c00に設定する。 (これも面白かった)
See Using Bochs internal debugger for internal debugger commands
Difference Between gdb+bochs and bochsdbg
gdb+bochs:源码级调试
bochsdbg:汇编级调试
汇编级调试器的bochsdbg调试环境配置
源码级调试的gdb+bochs调试环境配置
bochs-debugger and bochs-gdb in Fedora
- 電源ONとともにCPUが起動する。このときはリアルモードである。
- ROMのBIOSコードを実行する。
- フロッピーディスクの先頭セクタ512バイトをメインメモリの0x0000:0x7c00に読み込んでその先頭にジャンプする。
- ここから先は読み込まれた512バイトのブートコードに全ておまかせである。
ブートコードは0x7c00番地に読み込まれてから実行されるのであって、そこでブレークポイントをブートコードの開始番地である0x7c00に設定する。 (これも面白かった)
<bochs:1> lb 0x7c00
See Using Bochs internal debugger for internal debugger commands
Difference Between gdb+bochs and bochsdbg
gdb+bochs:源码级调试
bochsdbg:汇编级调试
汇编级调试器的bochsdbg调试环境配置
- 将bochs的源码解压到/usr/src/bochs-2.3.7文件夹中(For Example)
- cd /usr/src/bochs-2.3.7
- ./configure --enable-debugger --enable-disasm
- make all
- make install
- 在编译安装完成后使用将安装到/usr/local/bin目录下的bochs改名为bochsdbg
mv /usr/local/bin/bochs /usr/local/bin/bochsdbg
源码级调试的gdb+bochs调试环境配置
- 建立能够与gdb通信进行源码级调试的bochs,与上部分相同,进入bochs的源码目录,重新配置编译,加入stub for gdb模块,使其能够与gdb通信,执行以下命令:
cd /usr/src/bochs-2.3.7
./configure --enable-gdb-stub
make all
make install - 要使用gdb进行调试需要修改bochs的配置文件,将
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
添加到配置文件中,并使用bochs打开虚拟机。 - 另开一个终端窗口,以下命令打开gdb:
>gdb <内核二进制文件>
(gdb) target remote localhost:1234
gdb连接到bochs后就可以使用gdb进行源码级调试了,需要注意的是在编译内核时需要加入”-g”选项以生成调试符号。
bochs-debugger and bochs-gdb in Fedora
- bochs-debugger with the builtin debugger (--enable-x86-debugger --enable-debugger)
- bochs-gdb with the gdb stub (--enable-x86-debugger --enable-gdb-stub)
水曜日, 4月 22, 2009
Bochs及びその関連ソフトウェア
- Virtual Floppy Drive
ここ - RawWrite for Windows
See also chrysocome.net download and ここ - dd for windows
- The Netwide Assembler
Create Boot image:nasm xxx.asm -o xxx.bin -f bin
gettextの便利コマンド
gettextの便利コマンド
- msgattrib
- msgcat
$ msgcat -s sort.pot # ソート
- msgcmp
- msgcomm
- msgconv
- msgen
- msgexec
- msgfilter
- msgfmt
- msggrep
- msginit
- msgmerge
$ msgmerge -U orig.po new.pot # マージ
- msgunfmt
- msguniq
火曜日, 4月 21, 2009
Character Encoding and Windows Console woes
Character Encoding and Windows Console woes
How to Enable More Fonts for Windows Command Prompt
change standard fonts on windows console
Necessary criteria for fonts to be available in a command window
chcp 65001
mode con cp select=65001
How to Enable More Fonts for Windows Command Prompt
change standard fonts on windows console
Necessary criteria for fonts to be available in a command window
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
sys.stdout のエンコードを変更する
sys.stdout のエンコードを変更する
Python2.6
Python3.0
Python2.6
>>> sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
Python3.0
>>> sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
日曜日, 4月 19, 2009
木曜日, 4月 16, 2009
中国語の形態素解析器
今日朝、関口さんのブログに中国語の形態素解析器のリンクが張られました。個人用としてここにリンクをつけます。
Sen - 形態素解析ライブラリ
Pythonのようなスクリプト言語で形態素解析をする時、Mac + Python + MeCabとスクリプト言語のバインディングを参照してよいでしょう
日本語の形態素解析器へ
Sen - 形態素解析ライブラリ
Pythonのようなスクリプト言語で形態素解析をする時、Mac + Python + MeCabとスクリプト言語のバインディングを参照してよいでしょう
日本語の形態素解析器へ
水曜日, 4月 15, 2009
Building JCC on Linux Platform
PyLuceneに使われているJCCのコンパイル
JCC is a Python extension written in Python and C++. It requires a Java Runtime Environment to operate as it uses Java's reflection APIs to do its work. It is built and installed via distutils or setuptools.
Installing PyLucene
JCC is a Python extension written in Python and C++. It requires a Java Runtime Environment to operate as it uses Java's reflection APIs to do its work. It is built and installed via distutils or setuptools.
- Edit setup.py and review that values in the INCLUDES, CFLAGS,DEBUG_CFLAGS, LFLAGS and JAVAC are correct for your system. These values are also going to be compiled into JCC's config.py file and are going to be used by JCC when invoking distutils or setuptools to compile extensions it is generating code for.
- At the command line, enter:
$ python setup.py build
$ sudo python setup.py install
Installing PyLucene
For the Impatient Ones
- pushd jcc
- <edit setup.py to match your environment>
- python setup.py build
- sudo python setup.py install
- popd
- <edit Makefile to match your environment>
- make
- sudo make install
- make test (look for failures)
Removing old kernels using yum
Removing old kernels using yum
[root@localhost ~]# yum install yum-utils
[root@localhost ~]# package-cleanup --oldkernels
火曜日, 4月 14, 2009
Switch Java Runtime Environment between OpenJDK and Sun Java onFedora 10
Personal Fedora 10 Installation Guide
To install Java SE Runtime Environment (32-bit example):
Switch back to OpenJDK
To install Java SE Runtime Environment (32-bit example):
$ sudo sh jre-6u12-linux-i586-rpm.bin
$ sudo /usr/sbin/alternatives --install /usr/bin/java java /usr/java/default/bin/java 20000 (applies to both 32-bit and 64-bit users)
$ sudo /usr/sbin/alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so \
libjavaplugin.so /usr/java/default/plugin/i386/ns7/libjavaplugin_oji.so 20000 (The Mozilla/Firefox browser plugin for 32-bit users) or $ sudo /usr/sbin/alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so \
libjavaplugin.so.x86_64 /usr/java/jre1.6.0_12/lib/amd64/libnpjp2.so 20000 (For 64-bit users)
Switch back to OpenJDK
$ sudo /usr/sbin/alternatives --config java
$ sudo /usr/sbin/alternatives --config libjavaplugin.so (or for 64-bit)
$ sudo /usr/sbin/alternatives --config libjavaplugin.so.x86_64
Archive Manager
- Xarchiver - A GTK+2 only lightweight archive manager
- File Roller - GNOME 向けの書庫マネージャです。
- PeaZip
月曜日, 4月 13, 2009
Handbrake
Handbrake has been one of the more user friendly tools available on Windows and Linux for ripping DVD's and converting them to mp4 format. However , handbrake has been available on Linux as a command line application and did not support converting videos to lets say a format that could be easily played on Portable Meda Players. Handbrake with version 0.9.3 on Linux is available with a GTK+ based graphical frontend and supports a number of different video formats as source, allowing one to convert these video formats into format suitable to be played on your PMP's like Apple iPod.
cscope, ctags, & vim
cscope, ctags, & vim
ctags can be used to browser the definition of a variable (e.g., a function, variable, or macro).
cscope can be used to explore the call site of a definition (e.g., all function calls, all variable uses, all macro uses).
Choice of tool:
ctags can be used to browser the definition of a variable (e.g., a function, variable, or macro).
cscope can be used to explore the call site of a definition (e.g., all function calls, all variable uses, all macro uses).
Choice of tool:
- C: Use cscope + ctags
- C++ or anything else: Use just ctags. It has the benefit of
knowing about class names, where as cscope does not and will not
know the difference between namespc1::bob and namespc2::bob.
Installing and removing software on Mandriva
Installing and removing software
,See also Mandriva Linux Rpmdrake and URPMI HOWTO and Unofficial Mandriva Linux 2008.1 Starter GuideSet up these public repositories
- Run the Software Media Manager: open the Mandriva Control Center, and go to the Software Management tab.
- Click the link titled 'Configure media sources for install and update'.
- Click 'yes' when asked if it is OK to continue.
- Now click the 'Add...' button on the right hand side of the new screen.
- When asked whether to add 'Update sources only' or 'Full set of sources', click 'Full set of sources'.
- Click 'Yes' in reply to the question about the mirror list.
- When the mirror list appears, choose a mirror close to your geographical location. Wait for the process to complete.
When in console, using urpmi.update (maybe?)
日曜日, 4月 12, 2009
ODFDOM Samples
ODFDOM is an OpenDocument (ODF) framework. It's purpose is to provide an easy common way to create, access and manipulate ODF files, without requiring detailed knowledge of the ODF specification. It is designed to provide the ODF developer community an easy lightwork programming API, portable to any object-oriented language.
Some ODFDOM Samples
odf4j sample
Here´s the modified code which actually works:
jOpenDocument A pure Java library for OASIS Open Document files manipulation
Some ODFDOM Samples
- developer / src / test / java / org / odftoolkit / odfdom
- svn/ trunk/ ConversionTools4/ src/ np/ org/ mpp/ conv4/ utils/ odfdom/
odf4j sample
Here´s the modified code which actually works:
package org.openoffice.odf.tools;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import org.openoffice.odf.spreadsheet.SpreadsheetDocument;
public class Test {
public static void main(String[] args) throws Exception {
SpreadsheetDocument doc = new SpreadsheetDocument();
DefaultTableModel model = new DefaultTableModel();
model.addColumn("Column A");
model.addColumn("Column B");
Vector row = new Vector();
row.add( "foo" );
row.add( new Integer( 1 ) );
model.addRow( row );
doc.addSpreadsheet( "Test1", model, false );
doc.deleteSpreadsheet("Sheet1");
doc.save( "test.ods" );
doc.close();
}
}
jOpenDocument A pure Java library for OASIS Open Document files manipulation
New Linux Cross Reference (LXR) site
- http://lxr.free-electrons.com/
- http://free-electrons.com/community/kernel/lxr
- http://lxr.linux.no/ -- the Linux Cross Reference
- Linux Cross-Reference(and other FOSS programs as well)
- Oldlinux Cross Reference
- FreeBSD and Linux Kernel Cross-Reference
Wine Cross Reference
See also Linux Cross Reference setup on ubuntu
木曜日, 4月 09, 2009
QEMU Cheat Sheet
QEMU Cheat Sheet
一种方便的Linux内核调试方法:VirtualBox + KGDB
- build a bootable ISO image file of linux system and use it on VMs
- Install and use VirtualBox on Linux
- install virtualbox
$ apt-get install virtualbox-ose
- add the current user to the group vboxusers
$ adduser $USER vboxusers
- insert the relative modules to kernel
$ /etc/init.d/vboxdrv start
- start virtualbox, follow the prompt, and boot a system from the iso file
$ virtulbox
Use Qemu to boot iso file- installed first
$ apt-get install qemu
- boot the iso file
$ qemu -m 128M -cdrom minios.iso -boot d -no-kqemu
or boot a floppy image file$ qemu -m 64 -boot a -fda boot.img -no-kqemu
- to speed up the qemu, please install kqemu, the basic steps are:
$ sudo apt-get install kqemu-source kernel-package linux-source build-essential
$ cd /usr/src/linux
$ sudo module-assistant prepare kqemu
$ sudo module-assistant build kqemu
$ sudo module-assistant install kqemu
$ sudo depmod -a
$ sudo modprobe kqemu
$ sudo mknod /dev/kqemu c 250 0
$ sudo chmod 666 /dev/kqemu
now, there is no need to use the -no-kqemu option when using qemu and the
running speed of qemu will be accelerated.
Build the network between VMs and the HOST system/Internet
Boot linux kernel with Qemu- create a virtual disk image file
$ qemu-img create -f qcow linux.img 1G
In this command the -f option is for the disk image format. The following formats are supported: vfat, vpc, bochs, dmg, cloop, vmdk, cow, qcow, and raw, depending on the OS. See also: .img and .iso. The supported filesystem formats are abbreviations for:
- vfat - Virtual VFAT
- vpc - Virtual PC
- bochs - BOCHS filesystem
- dmg - macintosh Disk iMaGe
- cloop - linux Compressed LOOP
- vmdk - vmware Virtual Machine DisK format
- qcow - Qemu Copy-On-Write
- raw - RAW filesystem (no special format)
- cow - user mode linux Copy-On-Write
- boot the kernel using qemu with the -S option
sudo qemu -s -S -no-kqemu -kernel ../SSS/arch/i386/boot/bzImage -hda linux.img -append "root=/dev/hda"
(See also Breakint at boot startup on qemu) - switch it to the qemu command line via typing the
following command to start the gdb server:$ gdbserver 1234
- start a new terminal on your HOST system and execute gdb to
debug the linux kernel.$ gdb /path/to/vmlinux
(gdb) target remote localhost:1234
- install virtualbox
一种方便的Linux内核调试方法:VirtualBox + KGDB
How To Patch Running Linux Kernel Source Tree
How To Patch Running Linux Kernel Source Tree
See also:How to: Compile Linux kernel 2.6,How to: Compile Linux kernel modules
# cd linux-2.6.xx.yy
# patch < fix.vmsplice.exploit.patch -p1
See also:How to: Compile Linux kernel 2.6,How to: Compile Linux kernel modules
MBRのダンプとGRUBの逆アセンブル
MBRのダンプとGRUBの逆アセンブル
- MBR
$sudo od -tx1z -Ax -N 512 /dev/sda
- パーティションテーブル解析
$ od -tx1 -Ax -N 64 -j 446 /dev/sda
- ブートセクタの逆アセンブラ
objdump -D -b binary -d -mi386 boot.bin
$sudo od -tx1z -Ax -N 512 /dev/sda
水曜日, 4月 08, 2009
火曜日, 4月 07, 2009
Printing background in Internet Explorer
Printing background in Internet Explorer
As georgelawrence-ga stated:
Example...
As georgelawrence-ga stated:
The aproach I took was to paint the grey "background" as an image and
not as a background at all. I Googled around and found a simple grey
gif. (If you use this approach, you'll of course want to serve this
from your own servers.) Then I position the text of the header
directly over the grey image. This way the "print backgound colors"
setting of the browser doesn't matter, because the background's not a
background at all.
Example...
<html>
<table>
<tr>
<td>
<div style="height:1.4em;overflow:hidden">
<div style="height:1.4em"><img style="height:100%;width:100%"
src="http://art.sdsu.edu/geninfo/homepages/art240/lessons/vector/images/grey.gif"/></div>
<div style="height:1.4em;position:relative;top:-1.4em;;margin-left:2px;margin-top:2px">Header
Text</div>
</div>
</td>
</tr>
<tr><td>In the table cell of the header above there are 3 divs...</td></tr>
<tr><td>1) The first one encloses the next two</td></tr>
<tr><td>2) The next one contains a grey gif which is streched to fill
the div</td></tr>
<tr><td>3) The next one is positioned on top of the previous one and
contains the text</td></tr>
<tr><td> </td></tr>
<tr><td>Note, some versions of IE ignore the overflow css setting when
printing.</td></tr>
<tr><td>This causes a bit of unwanted space underneath the header.</td></tr>
<tr><td>Firefox doesn't seem to have a problem with it.</td></tr>
<tr><td> </td></tr>
</table>
</body>
</html>
月曜日, 4月 06, 2009
7zとrarでファイルの分割して出力する
7zでファイルを分割して出力する
$ 7za a -m0=BZip2 -v100m dirname.7z dirname
-m0 は圧縮方法の指定。
$ 7za a -mx=0 -v100m dirname.7z dirname
この分割アーカイブからデータを抽出するには、コマンドライン形式のcatコマンドによる結合作業を行うしかなかった。
$ cat myfile.7z.001 myfile.7z.002 myfile.7z.003 > myfile.7z
$ 7za x myfile.7z
Compress file(s) to split rar archive
rar - starts the program
a - tells program to add files to the archive
-m5 - determine the compression level (0-store (fast)...3-default...5-maximum(slow))
-v5M - determine the size of each file in split archive, in this example you get files with size 5MB (if you wanted files of 512kB size you would write -v512k)
myarchive - name of the archive you are creating
/home/ - is folder of the files you wish to add to the archive
任意のRAR断片ファイル boo.bar が何volume目なのかは % unrar l boo.bar か % unrar v boo.barで調べることができる。表示されるvolume番号は "1" が先頭となる
unrarで結合展開
% unrar x foo.rar
foo.rarがvolume 1 です
Extract the split multiple .rar files:
圧縮しながら 100MB ずつ分割して出力する
$ 7za a -m0=BZip2 -v100m dirname.7z dirname
-m0 は圧縮方法の指定。
LZMA 重いが圧縮率が高い
BZip2 バランスがいい
Deflate 軽いが圧縮率が低い
圧縮をかけずに 100MB ずつ分割しながら出力する (高速)
$ 7za a -mx=0 -v100m dirname.7z dirname
-mx= で圧縮レベルを指定する。0 だと圧縮しない。
この分割アーカイブからデータを抽出するには、コマンドライン形式のcatコマンドによる結合作業を行うしかなかった。
$ cat myfile.7z.001 myfile.7z.002 myfile.7z.003 > myfile.7z
$ 7za x myfile.7z
Compress file(s) to split rar archive
rar a -m5 -v5M -R myarchive /home/
rar - starts the program
a - tells program to add files to the archive
-m5 - determine the compression level (0-store (fast)...3-default...5-maximum(slow))
-v5M - determine the size of each file in split archive, in this example you get files with size 5MB (if you wanted files of 512kB size you would write -v512k)
myarchive - name of the archive you are creating
/home/ - is folder of the files you wish to add to the archive
任意のRAR断片ファイル boo.bar が何volume目なのかは % unrar l boo.bar か % unrar v boo.barで調べることができる。表示されるvolume番号は "1" が先頭となる
unrarで結合展開
% unrar x foo.rar
foo.rarがvolume 1 です
Extract the split multiple .rar files:
choose ANY .rar file such as xxx.part002.rar
$ unrar e MetalGuitar.part002.rar
GCC Inline Assembler
上のサイトはとてもすばらしいだと思っています。ホームページの配置にも、内容にもとても感心し、勉強になりました。
Brennan's Guide to Inline Assembly
Linuxにおけるx86インライン・アセンブラー
日曜日, 4月 05, 2009
Linux Assembler
- Introduction to Linux Intel Assembly Language
- The GNU Assembler
- GNU アセンブラ入門(GAS)
- Linux のアセンブラー: GAS と NASM を比較する
Assembler Command-Line Syntax
- Compiling
- AT&T-syntax
as -a --gstabs -o x.o x.s
-o option specifies what to call the object file, i.e. machine-code file, which is the primary output of the assembler.
-a option tells the assembler to display to the screen the source code, machine code and segment offsets side-by-side, for easier correlation.
-gstabs option tells the assembler to retain in x.o the symbol table, a list of the locations of whatever labels are in x.s, in the object file. - Intel syntax
nasm -f elf -o x.o -l x.l x.s
-f option instructs the assembler to set up the x.o file so that the
executable file constructed from it later on will be of the ELF format,
which is a common executable format on Linux platforms.
-l option
plays a similar role to -a in as, in that a side-by-side
listing of source and machine code will be written to the file
x.l.
- AT&T-syntax
- Linking
ld -o x x.o
- see the corresponding assembly language of a C program
gcc -S y.c
KDE taskbar setting on Fedora
Settings here in the [/root/ | ~].kde/share/config/plasma-appletsrc file
xfce4のパネル設定ファイル
~/.config/xfce4/panel/
xfce4のパネル設定ファイル
~/.config/xfce4/panel/
木曜日, 4月 02, 2009
POIのOOXMLサポート
- POIのOOXMLサポート
自前のやり方として、DOMでExcelファイルを参照・更新・削除するには? - POI 3.5 beta 4 - Supports Excel 2007 / XLSX Format
To open an existing workbook (of either format) you now use the new WorkBookFactory class. - Parsing Excel-2007-Format (xlsx)
SVNクライアント
Subversion Binary Packages
Some Stand-alone clients I am using
Desktop-integrated clients
Linux上でsubversion を proxy 経由で使う
Some Stand-alone clients I am using
- QSvn
QSvn is a GUI Subversion client for Linux, UNIX, Mac OS X and Windows. It is a real client not a GUI wrapper for the command line client from Subversion. - RapidSVN
Multi-platform GUI front-end for the Subversion revision system.
Windowsのsvnでプロキシサーバーを設定する
C:\Documents and Settings\UserName\Application Data\Subversionのserversファイルのglobalセクションを編集http-proxy-host = server_name
http-proxy-port = port - Silk SVN
Desktop-integrated clients
Linux上でsubversion を proxy 経由で使う
vi ~/.subversion/servers
[global]
http-proxy-exception = プロキシを通さないホスト名
http-proxy-host = プロキシサーバのホスト名
http-proxy-port = プロキシサーバのポート番号
将Debian Lenny 5.0安装到优盘
将Debian Lenny 5.0安装到优盘
Debian Lenny的USB-HDD版本下载地址
将下载的Debian-live-usbhdd镜像直接写入整个优盘:
dd if=debian-live-500-i386-lxde-desktop.img of=/dev/sdb
这时整个优盘只是前面的部分被引导镜像给占用了,后面还是空的。此时使用cfdisk分区:
cfdisk /dev/sdb
将后面的分区整个划成一个分区。然后格式化成ext3格式,并指定磁盘卷标成live-initramfs可以识别的持续化盘的名字:
mkfs.ext3 /dev/sdb2 -L live-rw
重启即可使用了。
Debian Lenny的USB-HDD版本下载地址
将下载的Debian-live-usbhdd镜像直接写入整个优盘:
dd if=debian-live-500-i386-lxde-desktop.img of=/dev/sdb
这时整个优盘只是前面的部分被引导镜像给占用了,后面还是空的。此时使用cfdisk分区:
cfdisk /dev/sdb
将后面的分区整个划成一个分区。然后格式化成ext3格式,并指定磁盘卷标成live-initramfs可以识别的持续化盘的名字:
mkfs.ext3 /dev/sdb2 -L live-rw
重启即可使用了。
水曜日, 4月 01, 2009
Tomcat5 - server.xml
Tomcat5 - server.xml
要素の親子関係
- ◎ Variables substitution in server.xml and web.xml in Tomcat as posted ${user.home} and other server.xml tags accepted by Tomcat?
- As replied by Rainer
The answer depends on the exact version you are using. All version 5.5
and 6 Tomcats and recent version 4.1 Tomcat supports resolving
${somevariable} in server.xml by looking at system properties automatically.
Some properties are set during Tomcat startup, like catalina.home and
catalina.base. Others you can set yourself by either adding to the
commandline "-Dsomevariable=somevalue" or adding to the end of
conf/catalina.properties.
- ◎ Use different server.xml file in Tomcat configuration
- ./tomcat.sh start -f /var/tmp/server-${USER}.xml
登録:
投稿 (Atom)