JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 package 與 import 的問題....
leo88813





發文: 63
積分: 0
於 2005-04-25 17:00 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我知道這個話題被問了好多次,可是我這個是再練習的時候百思不解的困擾,敬請各位大大幫我解惑一下....

路徑:C:\test\mypackage 內共有三個 java source code :

1
2
3
4
5
6
7
8
9
10
11
12
 package test.mypackage;
import java.io.*;
public class test{
  String myStr;
  public String input()throws IOException{
    BufferedReader myBuf;
    myBuf = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("請輸入一個字串");
    myStr = myBuf.readLine();
    return myStr;
    }
  }


1
2
3
4
5
package test.mypackage;
public interface DataIO{
  abstract void set(String myInput);
  abstract void show();
  }


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.*;
import test.mypackage.DataIO;
 
public class CH07_04 implements DataIO{
  private static String myStr;
 
  public void set(){
    myStr =  myInput;
 
    }
  public void show(){
    System.out.println(myStr);
    }
  public static void main(String args[]) throws IOException{
    test.mypackage.test test = new test.mypackage.test();
    String myInput = Package.input();
    CH07_04 myObject = new CH07_04();
    myObject.set(myInput);
    System.out.println("\n您輸入的字串:");
    myObject.show();
    }
}
 
//殘念!!!'''
//第三個source code compile error
//訊息如下
D:\test\mypackage\CH07_04.java:2: package test.mypackage does not exist
import test.mypackage.DataIO;
                      ^
D:\test\mypackage\CH07_04.java:4: cannot access DataIO
bad class file: .\DataIO.class
class file contains wrong class: test.mypackage.DataIO
Please remove or make sure it appears in the correct subdirectory of the classpath.
public class CH07_04 implements DataIO{
                                ^
2 errors
 
Tool completed with exit code 1
 


依照訊息解釋...應該是找不到package資料夾以及無法存取DataIO這個Class
可是我確定路徑設成:c:\test\mypackage 所有的class compile都存在這個路徑之下,難道class path設定也要跟著變動嗎?

拜託各位大大幫幫忙吧!快想破頭***.....


leo88813 edited on 2005-04-26 00:27
reply to postreply to post
作者 Re:package 與 inport 的問題.... [Re:leo88813]
LancelotLiu

電腦籃球唱歌



發文: 100
積分: 1
於 2005-04-25 17:06 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
CH07_04.java 要放在 C:\ 下才 import 的到 test.mypackage 裡的東西
如果不換位置的話,CH07_04也要有
1
package test.mypackage;


reply to postreply to post
作者 Re:package 與 inport 的問題.... [Re:leo88813]
leo88813





發文: 63
積分: 0
於 2005-04-25 18:35 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
問題是CH07_04的路徑就在c:\test\mypackage中,

compile照樣error阿.....

主要的問題應該出在DataIO.class無法讀取,可是我的路徑設定應該迷有問題捏....哀....煩死了 當成靈異事件算了!


leo88813 edited on 2005-04-25 18:38
reply to postreply to post
作者 Re:package 與 inport 的問題.... [Re:leo88813]
tekwei

系統穩定



發文: 978
積分: 4
於 2005-04-25 20:32 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
leo88813 wrote:
問題是CH07_04的路徑就在c:\test\mypackage中,
compile照樣error阿.....
主要的問題應該出在DataIO.class無法讀取,可是我的路徑設定應該迷有問題捏....哀....煩死了 當成靈異事件算了!

到底有沒有試過 LancelotLiu 給你的建議?
CH07_04 實現了 DataIO 界面, 但是沒有實作 set(String myInput) 方法,
標題 inport 寫錯, 首行 test.mypackagg 也是寫錯;
搞不好又扯到靈異事件。Dead


reply to postreply to post
作者 Re:package 與 inport 的問題.... [Re:leo88813]
fish1217

一步一腳印



發文: 696
積分: 6
於 2005-04-25 23:36 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
要人解惑,
請先把原始碼的錯誤解決,
光從眼晴看的錯誤有:
1.
1
2
 abstract void set(String myInput);
 abstract void show();

method inside interface's structure 這樣子對嗎?
2.
1
 myStr =  myInput;

myInput從那來的
3.
1
test.mypackage.test test = new test.mypackage.CH07_03();
    
where is ch07_03 constructor
4.
1
package test.mypackagg;

is test.mypackage ....etc

解決一下吧!哥哥,
說不定還有一些錯誤,
要幫您的人光debug就吐血死人了。
leo88813 振作點,
加油啦


fish1217 edited on 2005-04-25 23:41
reply to postreply to post
http://www.javaworld.com.tw/confluence/homepage.action JavaWorld@TW Wiki
http://caterpillar.onlyfun.net/Gossip/index.html 良葛格學習筆記
http://www.blogjava.net/ BlogJava
----
http://www.javaworld.com.tw/roller/fish1217
作者 Re:package 與 inport 的問題.... [Re:leo88813]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2005-04-26 00:37 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
leo88813 wrote:
問題是CH07_04的路徑就在c:\test\mypackage中,

compile照樣error阿.....

主要的問題應該出在DataIO.class無法讀取,可是我的路徑設定應該迷有問題捏....哀....煩死了 當成靈異事件算了!


這不是什麼靈異事件。有沒有了解 classpath、sourcepath 罷了。

如果你要在 c:\test\mypackage 下編譯,請下 command:
** 不要先編譯 DataIO.java,因為你亂放 DataIO.class 可能會壞事。
1
c:\test\mypackage>javac -d %WHERE_TO_PUT_CLASS% -sourcepath c:\ CH07_04.java


你也可以在其他目錄下編譯:
1
c:\source>javac -d %WHERE_TO_PUT_CLASS% -sourcepath c:\test\mypackage c:\test\mypackage\CH07_04.java


最好是把 source code 依照 package path 來管理(所有的 source files 不一定要源自同一個目錄,但不要把隸屬不同 package 的 class source file 放在同一個目錄),這樣子編譯時就簡單明瞭多了。


Duncan edited on 2005-04-26 01:01
reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:package 與 import 的問題.... [Re:leo88813]
leo88813





發文: 63
積分: 0
於 2005-04-26 00:42 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
嗯恩...抱歉抱歉....以上的錯誤都以更正過了,關於fish1217說
myStr = myInput;
是實做套件內Interface member的abstract method....

感謝各位熱心的大大願意幫我解決問提!

在CH07_04加入
package test.mypackage

1
2
3
4
5
6
import java.io.*;
import test.mypackage.DataIO;
package test.mypackage
 
public class CH07_04 implements DataIO{
....


錯誤訊息:
1
2
3
4
5
6
D:\test\mypackage\CH07_04.java:4: 'class' or 'interface' expected
package test.mypackage;
^
1 error
 
Tool completed with exit code 1


這個訊息看不大懂...需要 類別 或 介面?


reply to postreply to post
作者 Re:package 與 import 的問題.... [Re:leo88813]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2005-04-26 00:44 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
leo88813 wrote:

1
2
3
4
5
6
import java.io.*;
import test.mypackage.DataIO;
package test.mypackage
 
public class CH07_04 implements DataIO{
....


錯誤訊息:
1
2
3
4
5
6
D:\test\mypackage\CH07_04.java:4: 'class' or 'interface' expected
package test.mypackage;
^
1 error
 
Tool completed with exit code 1


這個訊息看不大懂...需要 類別 或 介面?


package directive 一定要放在最前面。


reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:package 與 import 的問題.... [Re:leo88813]
leo88813





發文: 63
積分: 0
於 2005-04-26 00:59 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
果然還是Duncan大大利害啊....一言道盡...讓我有豁然開朗的感覺

雖然還是有點疑惑...不過....剩下的翻一下筆記應該就可以了解
問題果然還是出在class path啊...

在發問過程中鬧了不少笑話,請各位大大見諒嚕...


reply to postreply to post
» JWorld@TW »  Java 新手區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8