2017-02-10 8 views

答えて

0

java -cp <CLASSPATH> <MainClass>と電話してください。ご使用のオペレーティングシステムに応じてCLASSPATHの正しい構文を見つけるには、PATH and CLASSPATHをお読みください。

0

Oracle tech note on setting the classpathを読むことをお勧めしますが、一般的な考え方は、プラットフォームの標準パス区切り文字を使用して区切られた複数のパスで構成される単一のclasspath変数/コマンドライン引数があることです。 ; " Unix上では ":"(私は一般的に言っています。なぜなら、cygwinやWindows上でbashを使うと、UNIXのセパレータを使うからです)。

クラスパスは、クラスファイルを含むディレクトリ、特定のjarファイル、または(最近のJavaバージョンでは)jar(クラスではない)に一致するワイルドカードのパスで構成されます。

あなたはjarファイルまたはディレクトリ内のクラスを持っている場合、彼らは、ディレクトリ・パッケージ形式である必要があり、例えば以下のクラスは、ディレクトリfoo/bar/Baz.classになることが予想されます。

package foo.bar; 

public class Baz { 
    public static void main(final String[] args) { 
    } 
} 

ので、Unixのディレクトリ/home/user/project/classes与えられました(これはfoo/barBaz.class、jarファイル/home/user/project/lib/dependency.jar、および/home/user/projectの現在の作業ディレクトリを含むディレクトリが含まれている私たちは持っている:

  • クラス絶対パスを使用するパス: /home/user/project/classes:/home/user/project/lib/dependency.jar

  • 相対パスを使用するクラスパスclasses:lib/dependency.jar

つのいずれか-classpath又は-cpコマンドライン引数使用してJavaにこれを渡すことができる。

  • java -classpath classes:lib/dependency.jar foo.bar.Baz
  • あるいは
  • java -cp classes:lib/dependency.jar foo.bar.Baz

を、CLASSPATH環境変数を設定することができます(通常はコマンドラインで設定し、予期せぬ副作用を起こしにくい)。 bashで、これは次のようになります。

  • CLASSPATH=classes:lib/dependency.jar java foo.bar.Baz
  • export CLASSPATH=classes:lib/dependency.jar; java foo.bar.Baz

注意(メインクラスとの1がそのマニフェストに属性)実行可能なjarファイルを使用している場合、それはまたのクラスパスに必要であることマニフェストで定義され、コマンドラインのclasspathは無視されます(java -jar documentationを参照)。

関連する問題