- PR -

他のjavaファイル呼び出し

投稿者投稿内容
kセイバー
常連さん
会議室デビュー日: 2005/10/12
投稿数: 33
投稿日時: 2005-10-12 17:02
過去ログのhttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=20997&forum=12&start=0
を見てもわからなかっため教えていただけないでしょうか?

package classes;

class TestA{
 public static void main(String[]args){
  TestB tb=new TestB();
 }
}
package classes;
class TestB{
 void TestB(){
 }
}
TestBはうまくいきます
ディレクトリはそれぞれ

d:classes/TestA
d:classes/TestB

実行コマンドはそれぞれ
(うまくいかなかったやつ)
C:\>cd /d d:
D:\>javac classes\TestA

d:classes\TestA.java:6:シンボルが解決できません
シンボル:クラス TestB
場所:classes.TestAのクラス
TestB tb=new TestB();
^
d:classes\TestA.java:6:シンボルが解決できません
シンボル:クラス TestB
場所:classes.TestAのクラス
TestB tb=new TestB();
               ^

[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 17:07 ]

[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 17:09 ]

[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 17:10 ]

[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 19:10 ]
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2005-10-12 17:28
環境変数 CLASSPATH に D:\classes を追加してみてはいかがかと。

D:\classes 配下に include したい hoge.class があるとして

C:\>set CLASSPATH=D:\classes;%CLASSPATH%
C:\>java .......


[ メッセージ編集済み 編集者: もしもし 編集日時 2005-10-12 17:28 ]
kセイバー
常連さん
会議室デビュー日: 2005/10/12
投稿数: 33
投稿日時: 2005-10-12 17:49
返信ありがとうございます。

classpathに言われたとうりの変更をしてもエラー内容は変わりませんでした。
すみません。

[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 17:49 ]
七誌
会議室デビュー日: 2005/06/17
投稿数: 8
投稿日時: 2005-10-12 18:04
構成が下記のようになっていると仮定して。

---構成---------------------
D:\classes\TestA.java
D:\classes\TestB.java
----------------------------

下記コマンドを実行。
javac -classpath D:\ classes\TestA.java


コレでコンパイルできませんか?
出来た場合は
 CLASSPATH
に関する勉強を行ってみては如何でしょうか。

[編集]
仮定の構成を私の環境で作成し、私が実行したコマンドプロンプトの表示内容

C:\>cd /d d:

D:\>javac -classpath D:\ classes\TestA.java

D:\>

コンパイルできてるんですけどね〜。
[/編集]


[ メッセージ編集済み 編集者: 七誌 編集日時 2005-10-12 18:36 ]
kセイバー
常連さん
会議室デビュー日: 2005/10/12
投稿数: 33
投稿日時: 2005-10-12 18:28
返信いただきありがとうございます

環境変数もちゃんと変化しているのに、うまくいきません。
javac -classpath D:\ classes\TestA.java
を実行すると。
javac:ソースファイルがありません。
と出ます。
すみません。
お願いします。

[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 18:29 ]
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2005-10-12 18:37
こんな感じ?

C:\classes\TestA.java ------------------------------------
コード:

package classes;
import classes.TestB;

public class TestA {

public TestA() {
}

public static void main(String[] args) {
TestB testb = new TestB();
String strTestB = testb.getTestB();
System.out.println(strTestB);
}
}


----------------------------------------------------------

D:\classes\TestB.java ------------------------------------
コード:

package classes;

public class TestB {

public TestB() {
}

public String getTestB() {
return new String("TestB");
}
}


----------------------------------------------------------

-- TestB.java を先にコンパイル
D:\>javac -classpath . classes\TestB.java

-- 次に TestA.java をコンパイル
C:\>javac -classpath .;D:\ classes\TestA.java

-- 実行
C:\>java -cp .;D:\ classes.TestA
TestB

[ メッセージ編集済み 編集者: もしもし 編集日時 2005-10-12 18:38 ]

[ メッセージ編集済み 編集者: もしもし 編集日時 2005-10-12 18:40 ]
kセイバー
常連さん
会議室デビュー日: 2005/10/12
投稿数: 33
投稿日時: 2005-10-12 18:56
すみません、cドライブの実行とdドライブの実行は違うPC
でして、ノートPC側(dドライブで実験した側)とデスクトップ側(cドライブで実験した側)
が混ざって変になったので書き直します

エラーが出るのはノートPC側で

d:classes\TestA.java
package classes;

class TestA{
 public static void main(String[]args){
  TestB tb=new TestB();
 }
}

d:classes\TestB.java
package classes;
class TestB{
 void TestB(){
 }
}


出るエラーは
d:classes\TestA.java:6:シンボルが解決できません
シンボル:クラス TestB
場所:classes.TestAのクラス
TestB tb=new TestB();
^
d:classes\TestA.java:6:シンボルが解決できません
シンボル:クラス TestB
場所:classes.TestAのクラス
TestB tb=new TestB();
             ^
cドライブ(ノートPC側)にコピーしてやっても同じ結果が出ました

環境変数はちゃんと変えてあります。(ノートPC側)

デスクトップ側うまくいきます。

ややこしくてすみません



[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 18:58 ]

[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 18:59 ]

[ メッセージ編集済み 編集者: kセイバー 編集日時 2005-10-12 19:00 ]
kセイバー
常連さん
会議室デビュー日: 2005/10/12
投稿数: 33
投稿日時: 2005-10-12 19:18
会社の環境の為、家に帰ります。
明日、レスがあった場合返事します。

スキルアップ/キャリアアップ(JOB@IT)