3

まず、私はJavaにまったく慣れていないということから始めましょう。しかし、どれほど新しいかをお伝えします。私はたくさんの本や例などを読み始め、約2か月前にEclipseを使用してJavaのプログラミングを始めました。ただし、代わりにメモ帳と端末を使用してプログラムすることについて、非常にクールなアドバイスを見つけました。初心者が難しい道を進むのはちょっと夢中ですが、私は挑戦が大好きで、学ぶことに真剣に取り組んでいます。

ですから、Eclipseでは、インポート、jarコンパイルの追加などの方法を非常によく理解していました。picoを使い始め、ターミナル(ubuntuを実行しています)を使用してコンパイルするときは、パッケージを使用するまで、すべてうまくいきました。何をしてもわからないので、2日間かけて髪を抜いてきました。

私はacm.jar(Eclipseで何度も使用しています)を使用しようとしていますが、ターミナルのjavacからコンパイルするときに使用方法が完全にわかりません。

だから私が求めているのは、誰かが私のjarファイルを機能させるプロセスを説明することです。

私がJavaプログラムを作成するために使用しているのは、ターミナルのpico(またはメモ帳)とjavacだけです。

4

2 に答える 2

1

外部ライブラリを使用して Java クラスをコンパイルおよび実行するには、そのライブラリをクラスパスに追加する必要があります。クラスパスは、Java コンパイラと JVM がコンパイル/実行プロセス中に必要な外部ライブラリ/クラスを検索する場所のセットです。

クラスパスの設定は、次の 2 つの方法で行うことができます。

  1. CLASSPATH という環境変数を設定します
  2. javac/java を実行するときに設定します

javac/java の実行時にクラスパスを設定するには、次のようにします。

javac -cp path/to/jar1:path/to/jar2:path/to/jar3:path/to/dirContainingClasses
yourMainClass.java

走る:

java -cp path/to/jar1:path/to/jar2:path/to/jar3:path/to/dirContainingClasses
yourMainClass

: Linux ではセパレーターとして使用され、Windows では使用されます。

于 2012-07-28T13:17:03.843 に答える
1

ソースファイルがsrc. コンパイルしたクラスをclasses. ソース ファイルが次のクラスを参照していると仮定しますlib/acm.jar

javac -cp classes:lib/acm.jar -d classes src/com/foo/bar/MyClass.java

クラスをコンパイルしcom.foo.bar.MyClass、生成されたMyClass.classファイルをclasses/com/foo/bar.

acm.jarクラスパスにファイルが必要です。それが-cp lib/acm.jarオプションの機能です。classesMyClass はおそらく、既にコンパイル済みでclassesディレクトリにある他のクラスを参照するため、クラスパスにも必要です。

クラスを実行するには、クラスパスと acm.jar にある必要があります。

java -cp classes:lib/acm.jar com.foo.bar.MyClass

ご覧のとおり、クラスパスには jar ファイルと、パッケージ階層と一致するフォルダー階層を含むディレクトリが含まれています。

ただし、コマンドラインから javac を直接使用することはありません。Gradle や Ant など、すべてのクラスを一度にビルドする実際のビルド ツールを使用してみてください。Mavenもとても人気がありますが、私は猛烈に嫌いです。

于 2012-07-28T13:15:14.397 に答える