かなり簡単な質問です。 AntやMavenを使わなくてもできますか? (そしてそれによって、私はコマンドラインツールを具体的に意味します)コマンドラインツールを使用してビルドするときに.jarファイルの依存関係を追加するにはどうすればよいですか?
私はuberjarを作成したくないことに気付きました。アーカイブされたユニットは、その外部依存関係がどこにあるかを "知る"ことを望みます。
かなり簡単な質問です。 AntやMavenを使わなくてもできますか? (そしてそれによって、私はコマンドラインツールを具体的に意味します)コマンドラインツールを使用してビルドするときに.jarファイルの依存関係を追加するにはどうすればよいですか?
私はuberjarを作成したくないことに気付きました。アーカイブされたユニットは、その外部依存関係がどこにあるかを "知る"ことを望みます。
コマンドラインの呼び出しがjavac
であるとすれば、「コンパイル時にjavacに引数としてライブラリを提供できますか」ということです。 man javac
ため
トップエントリには、効果的、私はあなただけの私が見て、あなたが探していることは、マニフェストファイルであると考え
javac -classpath path/to/library1.jar Main.java
どうも私はそんなに愚かなことができますか?ええ、あなたはIDEを使ってすべてのことをして、基本を忘れてしまいます。私はファイルを.jarファイルに追加する前にファイルをコンパイルしていませんでした(基本的に、私はたくさんの.javaファイルをアーカイブしていました)。さて、私たちはここで終わった、ありがとう。 – makoshichi
しばらくしてEclipse Eclipseを抜け、 'vim'と' mvn'を使います。 Eclipseが隠すものをどのくらいの頻度でまっすぐな 'mvnパッケージ 'で強調表示できるのか驚くでしょう。通常の練習にハドソン(または他のCI)を追加するためのボーナスポイント。 – ptomli
を言う必要がある疑いがある
-classpath classpath Sets the user class path, overriding the user class path in the CLASSPATH environment variable. If neither CLASSPATH or -class- path is specified, the user class path consists of the current directory. See Setting the Class Path for more details.
を語ります詳細はこちらへ http://download.oracle.com/javase/tutorial/deployment/jar/downman.html
META-INF/MANIFEST.MF
に変更できます。あなたはこのようなクラスパスに他のjarファイルを追加することができます。
Manifest-Version: 1.0
Main-Class: org.domain.MyMainClass
Class-Path: lib/slf4j-log4j12-1.5.8.jar lib/slf4j-api-1.5.8.jar
私は信じて、あなたがMain-Class
を定義し、このようにアプリケーションを起動する場合にのみ、それが動作すること:
java -jar my-app.jar
また気づき、そのクラスパスパスがありますメインジャーに対してだから私の例ディレクトリ構造内でこのようになります。
何をするには?マニフェストを作成しますか? JARを作成しているということは、すでに.classファイルをコンパイルしていることを示唆しています。本当ですか? – duffymo
私の神、それは本当に乱雑に聞こえました。私はそれをより明確にするために編集します。 – makoshichi