クラスパスの設定

このQ&Aのポイント
  • クラスパスの設定について解説します。
  • システム環境変数を使用してクラスパスを設定する方法について説明します。
  • サンプルファイルとパッケージの関係についても触れながら、クラスパスの設定方法を説明します。
回答を見る
  • ベストアンサー

クラスパスの設定

システム環境変数における設定 C:\java\pack1\sample1.jar C:\java\pack2\sample2.class があり、sample2.classのソースファイルが C:\java\pack3\sample2.java だとします。 さらにsample1.jarを解凍すると sample1\sample3.classにmainメソッドがあるものとします。 このとき、 sample2.classを実行するときにsample1.sample3をインポートできるようにする為には、sample2.classに import pack1.sample3; CLASSPATH C:\java\pack1\sample.jar でよいでしょうか?それともどこか間違っているでしょうか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • komi1341
  • ベストアンサー率65% (25/38)
回答No.1

間違っているか、というご質問ということは、実際に試してみて動かなかったと考えてよいのでしょうか。 動かない原因として考えられるのは、 > CLASSPATH C:\java\pack1\sample.jar sample「1」.jarではないかということと、 > C:\java\pack2\sample2.class > があり、sample2.classのソースファイルが > C:\java\pack3\sample2.java これではsample2.classを検索できないのではないかということ、でしょうか。sample2.classがデフォルトパッケージで、pack3フォルダもしくはカレントにもクラスパスを通してあれば実行できると思いますが、このあたりはパッケージ宣言次第なので、今出ている情報だけでは何ともいえません。

SariGEnNu
質問者

お礼

ありがとうございます。 こんがらがってしまっているようなので、もう一度整理してみます。 改めてご返答します。

関連するQ&A

  • クラスパスがとおりません。

    クラスパスがどおしてもとおりません。 # javac JdbcAccessTest.java # java JdbcAccessTest.class Exception in thread "main" java.lang.NoClassDefFoundError: JdbcAccessTest/class 以下のようにパスを通しているのですが。。 # pwd /export/home/test/webapp/sample/WEB-INF/classes # env CLASSPATH=/export/home/test/webapp/sample/WEB-INF/classes ・環境はSolarisです。よろしくお願いします。

    • ベストアンサー
    • Java
  • javaの実行環境

    javaの勉強をしようと思い、以下のhelloworldコードを書いてみました。 public class HelloWorld { public static void main(String[] args) { System.out.print("Hello World\n"); } } それを、以下のようにlinux環境(ubuntu 10.10)でコンパイル実行しようとしたのですが、 javac HelloWorld.java java HelloWorld.class Exception in thread "main" java.lang.NoClassDefFoundError: ・・・ と怒られてしまいました。そこで色々調べて jar cvmf manifest.mf test HelloWorld.class とjarファイルを作成して実行したところ、適切に"Hello World"が表示されました。 (manifest.mfの中身は"Main-Class: HelloWorld"1行だけです。) その後、このjarファイルをwindows環境に持っていって実行したのですが、 Exception in thread "main" java.lang.NoClassDefFoundError: ・・・ と怒られてしまいました。 linux環境で、"echo $CLASSPATH"を実行しても何も表示されず、CLASSPATHはどこにも通っていないようです。 また、windows環境のDOS画面にてSETを実行し、環境変数を表示させてもCLASSPATHはありませんでした。(javaはインストール済みです。) で、質問です。 1)なぜjarにすると実行でき、classファイルのままでは実行出来なかったのでしょうか? 2)windows環境で、CLASSPATHを設定したほうが良いのでしょうか?設定する場合は、prgramfiles\java\binで良いのでしょうか? 以上、長くなり申し訳ないのですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • SVFの設定について:クラスパスが通ってない?

    現在SVF(v6.2c)を使ってアプリを開発しております。 Webアプリケーションではなく、普通(?)のjavaのアプリです。 eclipseで開発しており、eclipseから実行すると無事PDFが出力されるのですが、 アプリをjarにかためてコマンドで実行すると、 「vfreport.properties not found (use default properties)」 というエラーで実行できません。(エラーコードはcode:[-1]です) 調べてパスが通っていないのだとわかったので、 実行PCの環境変数CLASSPATHにsvf.jarを追加したのですが、 それでも同じエラーで実行できません。 追加したパスは、 C:\SVFJP\svfjpd\lib\svf.jar です。 eclipseの.classpathでのsvf関連のものは、 <classpathentry kind="lib" path="lib/svf/BSPro.jar"/> <classpathentry kind="lib" path="lib/svf/svfpstat.jar"/> <classpathentry sourcepath="lib/svf/svfpstat.jar" kind="lib" path="lib/svf/svf.jar"/> となっています。 クラスパスの通し方が間違っているのでしょうか…? 何かわかる方がいらっしゃいましたら、教えてください。。。

    • ベストアンサー
    • Java
  • パッケージ化とクラスパスについて

    いつもお世話になっております。 パッケージ化について教えて下さい。 ■動作確認環境 j2sdk 1.4.2_12 CLASSPATH の設定は .;C:\sample です。 ----- 現在、以下のようなフォルダ構成で、パッケージ化とアクセス制御の勉強をしています。 C:\sample  |__ testpackage01     |__ TestParent.java C:\sample  |__ testpackage02     |__ TestChild.java やりたかったことは、TestChild が TestParent を継承し、"別パッケージでも親クラスの protected 変数 / メソッドはアクセスできる"ということの確認です。 しかし、TestParent の実行時に "NoClassDefFoundError: TestParent (wrong name: testpackage01/TestParent)" の RunTimeException が発生してしまいます。 コンパイルは正常に通ります。また、TestParent のパッケージ宣言 "package testpackage01;" をコメントアウトすると、正常に実行できます。 TestParent の処理は、mainメソッドの中で、文字列の表示を 1行行っているだけです。 自分ではもうどこをどうしたらよいのか、さっぱり分からなくなってしまいました。 間違っている部分をどなたかにご教授頂けたら幸いです。 宜しくお願い致します。

  • Log4jのインストール

    Java初心者です。Log4Jをダウンロードして、サンプルコードを実行しようとしているのですが、うまく行きません。インストール手順が何か足りないのでしょうか。 環境: OS=MacOSX Java-version=1.5.0_16 (1)Log4jをダウンロードし、解凍して、そのうちファイル名=log4j-1.2.15.jarをソースと同じディレクトリに置く (2)ウェブで探してきたテスト用のサンプルコード(下記参照)をlog4J.javaというファイル名で作成 (3)CLASSPATH=xxx.xxx(ソースのある絶対パス)/log4j-1.2.15.jar; export CLASSPATH を実行してクラスパスを通す (4)javac log4J.javaでコンパイル(エラーは出ず) (5)java log4Jを実行 Exception in thread "main" java.lang.NoClassDefFoundError: log4J 例外エラー発生。なぜだかお分かりでしょうか? import org.apache.log4j.*; public class log4J { static Logger logger = Logger.getLogger(log4J.class); public static void main(String[] args) { BasicConfigurator.configure(); logger.debug("Hello world."); logger.info("What a beatiful day."); } }

    • ベストアンサー
    • Java
  • JavaのCLASSPATHの設定について

    Java初心者です。過去に類似の質問が多数あり、目を通しましたが、よくわかりませんでした。よろしくお願いします。 コンパイル後、java Sample1と入力して実行しようとすると、 Exception in thread "main" java.lang.NoClassDefFoundError:Sample1 というエラーが出ます。Windows2000を使用。 ユーザー環境変数、システム環境変数の欄共にPathという変数はありますが、CLASSPATHはありません。 CLASSPATHは新規に追加するのでしょうか。それともPathの中に設定するのでしょうか。具体的にどのように設定するのでしょうか。 現在は、毎回Dos画面にset CLASSPATH=.;%CLASSPATH%と入力して実行していますが、PCを起動するたびに行わなくてはならないので、そうしなくてよい方法を教えてください。

    • ベストアンサー
    • Java
  • classファイルとJARファイルで実行した出力が異なる

    Javaのコマンドラインツールです。 CLASSファイルのままで実行 C:\> java -classpath .;mail.jar;activation.jar Mailx すると正常な出力が得られるプログラムをJARファイルにして C:\> jar xvf activation.jar C:\> jar xvf mail.jar C:\> jar cfm Mailx.jar Mailx.mf *.class com javax C:\> jar tvf Mailx.jar 実行 C:\>java -classpath Mailx.jar Mailx すると、正常な出力が得られなくなり、メールアドレスが出力されるはずが、メモリのアドレスのような値が出力  javax.mail.util.SharedByteArrayInputStream@1bf52a5 されるようになります。 なぜなのでしょうか? <Mailx.mf> Manifest-Version: 1.0 Main-Class: Mailx

  • クラスパスとカレントディレクトリ

    コマンドプロントでJavaファイルをコンパイルしたいのですがうまくいきません。 このJavaファイルは外部のJarファイルを必要で、このJavaファイルが置いてある場所にその必要なJarファイルをコピーしてあるのですが、エラーが出てしまいます。(-classpathコマンドでjarファイルを指定すると正常に動作します) どこかのサイトで CLASSPATH環境変数には「.」があるので、カレントディレクトリの下にあるJarファイルは読み込む と書いてあったと思うのですが、自分は何を間違ってとらえているのでしょうか? お返事お待ちしております。

    • ベストアンサー
    • Java
  • JDBCについて

    JAVAを使ってデータベースに接続しようと思うのですが コンパイルはうまくいくのですが実行すると 「Exception in thread "main" java.lang.NoClassDefFoundError:」 と出てきます。どうゆう意味なのでしょうか? またパスについてもよくわかりません。 一応設定はユーザ環境変数とシステム環境変数の両方に 「CLASSPATH .;C:\Program Files\Java\jdk1.5.0_11\bin;C:\Program Files\Java\jdk1.5.0_11\lib\tools.jar;C:\mysql-connector-java-5.0.4\mysql-connector-java-5.0.4-bin.jar」 と 「PATH C:\Program Files\Java\jdk1.5.0_11\bin;C:\MySQL\bin」 を入れました。 どのようにしたらうまくいくでしょうか? アドバイスをよろしくお願いします。

    • ベストアンサー
    • Java
  • 環境変数がおかしいのでしょうか?

    現在家のパソコンを使いJavaの勉強をしております。 家で使用しているパソコンとは違うのにj2sdk1.4.2_01をインストールして勉強しようと考えていました。 それで、J2SDK1.4.2_01をインストールしてユーザーの環境変数に以下のようなものを新規で作りました。 JAVA_HOME C:\j2sdk1.4.2_01 PATH %JAVA_HOME%\bin CLASSPATH .;%JAVA_HOME%\lib\tools.jar それで家で作ったjavaファイル、classファイルをインストールしたパソコンにコピーしました。 実際に正しく設定されているか確認するため、javaファイルのあるディレクトリに移動し javac Sample.java (作ったjavaファイルをSample.javaとした場合) とコマンドしたところ 「'javac'は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」 と表示されました。 家のパソコンと同じようにしたのにおかしいと思い、一応classファイルもコピーしたので java Sample とタイプし実行してみました。 そうすると実行はできたんです。 なぜコンパイルはできなかったんでしょうか? 環境変数の設定がおかしいのでしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう