0

EclipseをIDEとして使用して、ubuntuホームサーバーにマップしたSambaネットワークドライブにプロジェクトを保存します。使用しているjarライブラリを/libフォルダーに保存するようにEclipseを構成しました。

問題は、サーバーのコマンドラインからJavaプログラムを実行しようとすると、常に次のように入力する必要があることです。

java -cp .:../lib/* javaclassname

これは、特にタブ補完がクラスパスに含まれている必要のあるコロンでは機能しないことを考えると、少し面倒になります。毎回手動でクラスパスを指定する必要がないように設定する方法はありますか?

4

2 に答える 2

1

最も簡単なオプションは、EclipseにJARをビルドさせることです。プロジェクトを右クリックし、[エクスポート]>[実行可能なJARファイル]を選択します。ダイアログにはいくつかのオプションがあります。[必要なライブラリをコピー...]を選択します。出力は、メインアプリケーションのJARファイルと、依存関係のあるlibフォルダーになります。この場合、JARファイルマニフェストはすべての依存関係を指すクラスパスを指定します。コマンドラインで実行すると、「java-jarmyJar.jar」と同じくらい簡単になります。

あなたが物事を自動化したいのなら、私はAntから始めます。Mavenよりも学習曲線が少ないと思います。この場合、jarAntタスクを確認してください。

于 2013-03-08T15:44:33.930 に答える
0

と呼ばれるシェルスクリプトを作成し、run.shそれをプロジェクトのルートフォルダーに配置することで、これを解決することになりました。

run.sh:

#!/bin/bash

LIBS=$(grep '<classpathentry kind="lib" path="' .classpath | sed 's/.*\<classpathentry kind="lib" path="//' | sed 's/\"[^\"]*$//' | tr '\n' ':')

java -cp "bin:$LIBS" $1

を実行して実行可能にしchmod u+x run.sh、次のコマンドで実行します。./run.sh packagename.classname

ルートフォルダ内のファイルを読み取り、.classpathコマンドラインのコロンで区切られたリストにすべてのエントリを追加します。

于 2014-12-04T02:59:07.600 に答える