0

ここで複数の質問があるかもしれませんが、最終的にはサードパーティの JAR ファイル (Ubuntu Linux 上) を参照する Java プログラムをコンパイルして実行しようとしているので、1 つの質問に留めておくのが適切だと思いました。

Java JDK 7 を適切にインストールして構成し、Ubuntu Linux で簡単なプログラムを実行しようとしています。コマンドラインから単純な Java プログラム (おそらく「Hello World」アプリケーション?) を実行するのに役立つ、少なくとも専門家からの指示を仰ぎたいと思います。私はこれまで Windows で Java プログラムをコンパイルして実行しただけなので、これは初めてのことです。昨夜、Open JDK をインストールしないように注意し、Oracle JDK をインストールする必要があることを読みました。Ubuntu 11.10 は、OS のインストール時に Java Open JDK をインストールするようです。

64ビットではなく、32ビットのUbuntuを実行しています。そこで、この Linux JDK ファイルをダウンロードしました:
jdk-7u4-linux-i586.tar.gz

tarball を /usr/java に解凍し、*.gz ファイルを削除してディスク容量を節約しました。/usr/java にインストールするように指示されているチュートリアルもあれば、/usr/lib/jvm にインストールするように指示されているチュートリアルもあります。適切なインストール ディレクトリについて提案がある場合は、その提案をお知らせください。

次に、「java -version」コマンドを使用して、インストールされている Java のバージョン (以下) を確認しました。Oracle JDK が見つかりませんでした。

(1)インストールしたばかりの Oracle JDK パッケージがコマンドにリストされないのはなぜですか?

mac@UBUNTU:/usr/lib$ java -version
The program 'java' can be found in the following packages:
 * gcj-4.4-jre-headless
 * gcj-4.6-jre-headless
 * openjdk-6-jre-headless
 * gcj-4.5-jre-headless
 * openjdk-7-jre-headless
Try: sudo apt-get install <selected package>
mac@UBUNTU:/usr/lib$ 

(2) Java プログラムをコンパイルするようにこの Linux マシンを構成するために必要な手順を手伝ってもらえますか (今始めた作業を完了させてください)。

(3) *.java ファイルをコンパイルして *.class ファイルを作成する手順を教えてください。

(4)コンパイルしたばかりの Java プログラムを実行するのを手伝ってくれませんか?

(5) Java プログラムに複数の *.jar ファイル (サードパーティのアセンブリ) を含めたいとします。これらのファイルを参照する Java プログラムを実行しているディレクトリにファイルがない場合、Java は Linux でこれらのファイルの場所をどのように認識しますか? (私は Windows の CLASSPATH しか知りません)

4

1 に答える 1

3
  1. Ubuntu は Debian とその apt-get ユーティリティに基づいています。apt-get は、既知のパッケージのみを一覧表示します。インストールしたものは、システム上にある単なるフォルダーであり、apt-get はそれを認識していません。
  2. javaあなたの道にないようです。そのため、パスのフォルダーの 1 つに Java バイナリへのシンボリック リンクを作成するか (入力envしてパス変数の内容を確認します)、JDK の bin ディレクトリをパスに追加します (コマンドを参照export)。最後の手段として、Java バイナリへの絶対パスを入力できますが、それは面倒です。
  3. コンパイルするには、単に javac (Java コンパイラ) を使用します。たとえばjavac Test.java。javac もパス上にあることを確認してください (または、Java コンパイラへの絶対パスを使用します)。
  4. 実行するには、java -cp . Test次のように入力します (クラスをパッケージ内に配置する場合は、クラスの完全修飾名を忘れずに入力してください。これをお勧めします)。
  5. コンパイル時または実行時に、引数 -cp の後に使用する jar のリストを使用します (Linux では「:」、Windows では「;」で区切ります)。クラスパスでワイルドカード (lib/*.jar など) を使用できますが、シェルの拡張を避けるためにワイルドカードをエスケープする必要がある場合もあります (この などlib/\*.jar)。
于 2012-04-30T09:14:47.420 に答える