web-dev-qa-db-ja.com

コマンドラインでjavacを使用してコンパイル中に「パッケージjavax.injectが存在しません」エラーが発生しました

私はJSFを学ぶための第一歩を踏み出しました。 「CoreJavaServerFacesThirdEdition」という興味深い本を見つけました。

最初の例をコンパイルしようとすると、ソースコードを次の場所からダウンロードできます: http://horstmann.com/corejsf/ 。コマンドラインで次のように入力すると

javac UserBean.Java

エラーが発生します:

package javax.inject does not exist
package javax.enterprise.context doe not exist

Java EE、Ant、GlassFishをダウンロードしました。

これが私のコマンドラインのスナップです:

C:\JSF-Tutorial\corejsf3-examples\javaee\ch01\login\src\Java\com\corejsf>javac UserBean.Java
UserBean.Java:4: error: package javax.inject does not exist
import javax.inject.Named;
                   ^
UserBean.Java:6: error: package javax.enterprise.context does not exist
import javax.enterprise.context.SessionScoped;
                               ^
UserBean.Java:9: error: cannot find symbol
@Named("user") // or @ManagedBean(name="user")
 ^
  symbol: class Named
UserBean.Java:10: error: cannot find symbol
@SessionScoped
 ^
  symbol: class SessionScoped
4 errors

C:\JSF-Tutorial\corejsf3-examples\javaee\ch01\login\src\Java\com\corejsf>

先週、Java EEアプリケーションをコンパイルする方法をグーグルで調べてきましたが、何も役に立ちませんでした。

誰かがこれを手伝ってくれませんか。JSFを学ぶために自分のタスクを進めることができるように、これを解決する必要があります。

SP:Java EEアプリケーションを素手でコンパイルしてからJava EEプロジェクトをNetBeansでコンパイルする方法を学びたい。GlassFishでの作業を学ぶことを好む最初に、そしておそらく後者で、Tomcatを検討します。

もう1つの質問。 Java EEとGlassFishサーバーを使用してアプリケーションをデプロイすることの違いは何ですか?

11
Shikatsu

これらのクラスを含むJARファイルをコンパイル時のクラスパスに含める必要があります。

GlassFishサーバーの特定のケースでは、それは/glassfish/lib/javaee.jarです。クラスパスは、javacコマンドの-cp(または-classpath)引数として指定できます。これは、コンパイル時のクラスパスに含める必要があるJARファイルやクラスフォルダを指すディスクファイルシステムパスの半コロン区切りの文字列です。

javac -cp /path/to/glassfish/lib/javaee.jar UserBean.Java

javacは、importによって参照される不明なクラスに遭遇すると、そこで調べます。これにより、特に、それが正しい方法で使用されたかどうかを確認できます。

これは技術的にはJava EEとは関係ありません。これは単なる基本的なJavaです。Java EEに飛び込む前にまずそれを学ぶことをお勧めします。

IDEを使用している場合は、ターゲットサーバーを「ターゲットランタイム」としてプロジェクトに接続するだけです。 IDEは、ビルドパス(コンパイル時のクラスパス)に関してすべての魔法を自動的に実行します。

10
BalusC

Netbeans 7.3では、プロジェクトビューアのライブラリフォルダを右クリックし、[ライブラリの追加]オプションを選択して、リストから[Java EE 6APIライブラリ]を選択できます。

9
mpiliszcz

NetBeans IDE 8.0では、バージョン7.3で説明したものとは少し異なります。

  1. Librariesを右クリックしてJava EEプロジェクトを
  2. Import...を選択します
  3. 使用しているバージョンに応じて、Java EE 6 API LibraryまたはJava EE 7 API Libraryのいずれかを選択します。
  4. Import Libraryボタンをクリックします
  5. インポートしたライブラリを選択し、Add Libraryボタンを押します。
3
andand