アプリ版:「スタンプのみでお礼する」機能のリリースについて

ご質問させて頂きます。

自作のクラスファイルがインポート出来ないので困っています。

自作のクラスファイルがある場所
c:\ja

クラスファイル名
TestMap.class

juko.javaにこのようにインポートして、
import TestMap.*;

以下のようにインポートをしようとすると、
C:\ja>javac -d c:\ja juko.java

以下のようなエラーになってしまいます。
-----------------
jukou.java:7: パッケージ TestMap は存在しません。
import TestMap.*;
-----------------

なお、環境設定も以下のように変更してみましたが駄目でした。
CLASSPATH=C:\ja;.;C:\j2sdk1.4.1_02\lib\tools.jar;C:\Program Files\Allaire\JRun\l
ib\ext\servlet.jar;C:\mysql-connector-java-3.1.0\mysql-connector-java-3.1.0-alph
a-bin.jar;

ご教授して頂けたら幸いです。

A 回答 (5件)

おお


そこまでいったってことはimportについては解決したようですね。


TestMap("B") ;
は参照になっていません。
クラス名("B")はコンストラクタにStringの"B"を渡しているということになっているからです。

試しにTestMapクラスに
public String getStr(){
return "呼ばれてますよ!"
}
を追加してみてください。

これで"呼ばれてますよ!"がとれれば大丈夫!!
    • good
    • 0

ちなみに最初のimportがどうのこうのという問題はimportについて正しく理解していないからだと思います。



importはそのクラス(この場合はTestMapクラス)を使うクラスがTestMapをつかうときにpackage名.TestMapでアクセスしなくてはいけないところをTestMapだけでアクセスするためにつかうのです。

こんな書き方をすると他の方から苦情がきそうですが。。。
とりあえずはそんな認識で大丈夫だと思います。

今回はTestMapにpackage宣言がついていないということなのでimportする必要がないということです。
正確には"パッケージ宣言しない"パッケージに属しているということなのですが。。。
    • good
    • 0
この回答へのお礼

ご返事有り難うございました。
お陰様で解決しそうです。

お礼日時:2003/07/01 17:24

TestMap.javaとjuko.javaが同パッケージ内にあるならば


import文は必要ありません。

気になるようでしたらパッケージソースを全てコンパイルしてみてはどうですか。
javac -d C:\ja *.java
    • good
    • 0
この回答へのお礼

ご返事有り難うございました。

お礼日時:2003/07/01 17:22

c:\ja にクラスパスが通っていて


c:\ja\TestMap.class
となっているのであれば、importはいらないのでは?

この回答への補足

ご返事有り難うございました。

>となっているのであれば、importはいらないのでは?
ということは、自作のクラスファイルを参照する方に問題があるということなんですか?


>TestMap("B") ;
と、参照すると、

>C:\ja>javac juko.java
>juko.java:85: シンボルを解決できません。
>シンボル: メソッド TestMap (java.lang.String)
>場所 : juko の クラス
> TestMap("B") ;
というエラーが表示されてしまいます。

ちなみに、TestMap.javaは以下のような感じです。
-----------------
import java.io.*;
import java.util.*;

public class TestMap
{
/*HashMap生成(クラス変数)*/
class MyData{
public String sDate;
public String sName;
}

private static HashMap hashMap = new HashMap();

/*追加:入力キー(クラス変数)*/
public static String inputKey = null;
private String[] keys = {};

public static void main(String args[]){
try{

TestMap testMap = new TestMap();
testMap.setMap("test.csv");



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

お忙しいところご面倒と思いますが
ご教授して頂けたら幸いです。

補足日時:2003/07/01 16:45
    • good
    • 0

(1)


import TestMap.*; を

import TestMap;

としたらできないでしょうか?


(2)
呼び出している側にpackege文があって、
呼び出されている側にはpackege文は存在しないということはないでしょうか?
最近、そういうことが禁止になりました。

(3)
どちらもpackage文を使っておらず、
同じディレクトリに存在するならば、
上記import文を削除すればできるかもしれません。

この回答への補足

ご返事有り難うございました。

早速ですが、

(1)は、
C:\ja>javac -d c:\ja juko.java
juko.java:7: '.' がありません。
import TestMap;
^
と、なってしまいます。

(2)は、TestMap.javaにはpackege文は使用していません。

(3)は、
C:\ja>javac -d c:\ja jukou.java
jukou.java:7: 'class' または 'interface' がありません。
TestMap.*;
^
と、なってしまいます。

お忙しいところご面倒かとは思いますが
ご教授して頂けたら幸いです。

補足日時:2003/07/01 15:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A