0

私は、Java にネイティブではない外部クラス ライブラリと API を使用するという考えに慣れていないため、適切な用語で適切な質問をしているのかどうかさえわかりません。それでは、私が何をしているのかを説明しましょう。

Excelファイルを読み書きする必要があります。Java-Excel API があるこのページを見つけました。その API をインストールして Java のローカル インスタンス ( C:\java\) で使用できるようにしたいので、新しいプログラム ( など) を作成するときにこれらのクラスをインポートできますimport jxl.CellViewsourceforgeの zip ファイルを持っていますが、その後、道に迷ってしまいます。

手順は、Eclipse でのセットアップを参照しています。私は IDE としての Eclipse のファンではないので、「手動で」行う方法を知りたいです。これは、なぜそれが将来のために機能するのかをよりよく理解するのに役立つと思います.

それで、私の次の指示は... 「Java プログラムでこのライブラリを使用するには、lib jxl.jar をプロジェクトのクラスパスに追加します。Eclipse でのクラスパスの変更を参照してください。」zipファイルを解凍するだけC:\javaですか?それが私のクラスパスの意味ですか?必要に応じて適切なクラスをインポートできるようにするために、ここから従う必要がある手順は何ですか?

さらに、これらのクラスはアプレットにバンドルされますか? Java プログラムをコンパイルすると、そのファイルの受信者は、実行しているマシンにこの特定のパッケージがインストールされていなくても、それを実行できますか?

誰かがこれについて私にいくつかの見通しを与えることができますか?

4

4 に答える 4

2

すべてのサードパーティ ライブラリを c:\java\lib に配置するのが好きです。そうすれば、c:\java にある JRE および JDK からそれらを分離しておくことができます。これは厳密に必要というわけではありませんが、整理しておくと便利です。興味のあるライブラリを使用するための具体的な手順を次に示します。

に抽出jexcelapi_2_6_12.zipc:\java\lib\ます。

これは、次のファイルが存在することを意味するはずです: C:\java\lib\jexcelapi\jxl.jar.

c:\java\work分けておくために、とりあえずコードを入れましょう。c:\java\work\MyClass.javaテキスト エディタを使用してファイルを作成します。

import jxl.CellView;
public class MyClass {
    public static void main(String[] args) {
        System.out.println("I can access " + CellView.class);
    }
}

コマンド プロンプトを開き、ディレクトリを c:\java\work に変更します。

cd /d c:\java\work

クラスをコンパイルします。

javac -classpath ..\lib\jexcelapi\jxl.jar MyClass.java

エラーが発生しない場合、ディレクトリMyClass.classにはコンパイル済みプログラムである新しいファイルが含まれているはずです。

エラーが表示された場合: 「javac」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。次に、javac.exe へのフル パスを指定できます。次の例では、c:\java\jdk1.6.0_37 に JDK があることを前提としていますが、これはシステムに当てはまる場合とそうでない場合があります。

c:\java\jdk1.6.0_37\bin\javac -classpath ..\lib\jexcelapi\jxl.jar MyClass.java

コンパイルしたプログラムを実行します。

C:\java\work>java -classpath ..\lib\jexcelapi\jxl.jar;. MyClass

出力:
クラス jxl.CellView にアクセスできます

javaクラスパスの末尾にあるセミコロンとドットに注目してください。これにより、現在のディレクトリがクラスパスに追加され、Java が MyClass.class を検出できるようになります。では必要ありませんでしたjavac

ディレクトリのみを含む必要があるとは異なりPATH、java CLASSPATH(または-classpath) にはファイルとディレクトリの両方を含めることができます。ファイルがクラスパスに表示される場合、それは JAR である必要があります。JAR は単なる zip ファイルであるため、クラスパスに ZIP ファイルが表示されることもあります。これは非標準ですが、機能します。Java は .zip ファイルを .jar として扱います。プログラムに 2 つ目のライブラリを追加する必要がある場合は、ファイルをセミコロン (Windows) またはコロン (*nix) で区切ります。

javac -classpath ..\lib\jexcelapi\jxl.jar;..\lib\lib-2.0\lib-2.0.jar MyClass.java

ライブラリが複数の jar ファイルで構成される場合があります。この場合、ライブラリの一部であるすべての JAR ファイルをクラスパスに追加する必要があります。繰り返しますが、セミコロンで区切ります。これが面倒だと思われる場合は、人々がコマンド ライン コマンドではなく、IDE や Ant を使用して Java を操作することを好む理由がわかります。

パッケージの使用、コマンドライン引数を使用する代わりに環境変数 CLASSPATH を使用してクラスパスを設定する-classpath、JDK bin ディレクトリを PATH に追加する、クラスパスに複数のエントリを追加する、シェルスクリプトを作成してプログラムの再構築と再実行を容易にし、開発には IDE を使用し、ビルドには Maven/Ant を使用し、独自の JAR を作成します... 学ぶべきことのリストは延々と続きます。この投稿は、ベスト プラクティスを示すことを意図したものではなく、すぐに使い始めることを目的としています。Java 開発環境を改善し続けるために、インターネットに掲載されている Oracle のドキュメントやその他のベスト プラクティスに従ってください。

さらに、これらのクラスはアプレットにバンドルされますか?
あなたのプログラムが最終的にアプレットになるのであれば、そうです、jxl.jar をあなたのプログラムと一緒に配布する必要があります。 . ここでは、アプレットの作成方法については説明しません。ウェブ上にはたくさんのリソースがあります。Google で検索して、遭遇した問題についてより具体的な質問をしてください。

Java プログラムをコンパイルすると、そのファイルの受信者は、実行しているマシンにこの特定のパッケージがインストールされていなくても、それを実行できますか?
jxl ライブラリは、プログラムにコンパイルされません。プログラムと一緒に、何らかの方法で jxl ライブラリをユーザーに配布する必要があります。ほとんどの重要なプログラムは複数の Java クラスで構成されているため、おそらくプログラムを JAR にバンドルする必要があります。これは、プログラムが複数の .class ファイルで構成されることを意味します。この問題にアプローチする方法はいくつかあります。アプレットの作成方法に関するリソースを読んでから、より具体的な質問でスタックオーバーフローに戻ってください。

于 2013-01-10T16:15:56.300 に答える
1

コマンドラインに移動します。

入力:

echo %CLASSPATH%

ディレクトリのリストを返す必要があります。インポートしたいライブラリをそれらのいずれかに配置できます。

読む: http://docs.oracle.com/javase/tutorial/essential/environment/paths.html

于 2013-01-10T15:59:21.683 に答える
0

jxl.jar がある zip ファイルに、この jxl.jar を外部ライブラリのようなプロジェクトに含める必要があります。たとえば、ネットビーンズでは次のようになります。

http://jsumon.wordpress.com/2009/11/24/adding-external-jar-or-library-to-netbeans-java-project/

そして日食:

http://www.wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-%28Java%29

于 2013-01-10T16:14:57.220 に答える
0

.jarクラスパスは、Java 仮想マシンが必要なクラスをロードするディレクトリとファイルのリストです。一部のディレクトリと jar はデフォルトでそこにあり (基本的には Java インストールに付属するライブラリ)、その他はユーザーが指定する必要があります。

追加の場所を指定する 1 つの方法は、CLASSPATH環境変数です。複数のエントリがある場合は、プラットフォームのパス セパレータ (Windows ではセミコロン、他のほとんどのシステムではコロン) で区切ります。

もう 1 つの方法は-classpath、コンパイラまたは Java 仮想マシンを起動するときのオプションです。

あなたの場合、jxl.jarファイルをどこかに置き(たとえば/some/path/jxl.jar)、コンパイラを次のように呼び出します(MyClassがデフォルトパッケージにあり、現在のディレクトリに保存されていると仮定します)

javac -classpath /some/path/jxl.jar:. MyClass.java

そしてそれを実行するには

java -classpath /some/path/jxl.jar:. MyClass
于 2013-01-10T16:11:26.243 に答える