2010/11/03

Macでのjavaのクラスパス指定方法

MacでJavacを使ってソースをコンパイルしたいとき、-classpathオプションで躓きました。

・階層構造
ore
-src
--OreServlet.java
-WEB-INF
-classes
--shinya
---sample

・コンパイル
javac -d WEB-INF/classes/ -classpath ".;/Users/${user}/Develop/apache-tomcat-6.0.28/lib/servlet-api.jar" src/shinya/sample/OreServlet.java

package javax.servlet does not existが出る・・・
Macで-classpathオプションを使うときの区切り文字はセミコロン”;”ではなく、コロン”:”を使う。
Windows系では区切り文字として;(セミコロン)を、UNIX系では区切り文字として:(コロン)を使用します。
これがゆとりか・・・Eclipseなしにはもうプログラミングできない!

で、正しくは
javac -d WEB-INF/classes/ -classpath ".:/Users/${user}/Develop/apache-tomcat-6.0.28/lib/servlet-api.jar" src/shinya/sample/OreServlet.java

少し話はそれるが、Macつながりでもう一つ。
Macでルートユーザーになりたい場合は
sudo passwd root
を使って、その後
$ su -Password:#
でrootになってあげる必要がある。