線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1019
推到 Plurk!
推到 Facebook!

程式碼分開編譯的問題

答題得分者是:RaynorPao
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-16 11:56:57 IP:218.162.xxx.xxx 未訂閱
問題是這個樣子的,    
class arg
{
        public static void main (String args[])
        {
                int cx = 0;
                String tmp = new String("");
                for (int i=0; i<=20; i  )
                {
                        try 
                        {
                                if (args[i] != "")
                                {
                                        System.out.println("\targs["   i   "]='"   args[i]   "'");
                                        if (i != 0) tmp = tmp   " ";
                                        tmp= tmp   args[i];
                                        cx = i;
                                }
                        }
                        catch (ArrayIndexOutOfBoundsException e)
                        {
                                System.out.print("End of ");
                                break;
                        }
                }
                System.out.println(cx   ".");
                caller(tmp);
        }
        
        public static void caller (String dx)
        {
                System.out.println("caller("   dx   ")");
                System.out.println(cal.power(4));
        }
}    /**
        數學計算器
*/
public class cal
{
        public static int power(int ax) 
        {
                if (ax <= 1) return 1;
                else return ax * power(ax-1);
        }
}    
如果我們將 public class cal 這一段剪到另一個檔案 cal.java 當中,就會造成編譯錯誤,並且無法執行。 可是我之前記得這樣做應該是可以執行的才對啊,到底問題是出在什麼地方呢? 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-16 12:21:26 IP:203.73.xxx.xxx 未訂閱
引言: 問題是這個樣子的,
class arg
{
        public static void main (String args[])
        {
                int cx = 0;
                String tmp = new String("");
                for (int i=0; i<=20; i  )
                {
                        try 
                        {
                                if (args[i] != "")
                                {
                                        System.out.println("\targs["   i   "]='"   args[i]   "'");
                                        if (i != 0) tmp = tmp   " ";
                                        tmp= tmp   args[i];
                                        cx = i;
                                }
                        }
                        catch (ArrayIndexOutOfBoundsException e)
                        {
                                System.out.print("End of ");
                                break;
                        }
                }
                System.out.println(cx   ".");
                caller(tmp);
        }
        
        public static void caller (String dx)
        {
                System.out.println("caller("   dx   ")");
                System.out.println(cal.power(4));
        }
}    /**
        數學計算器
*/
public class cal
{
        public static int power(int ax) 
        {
                if (ax <= 1) return 1;
                else return ax * power(ax-1);
        }
}    
如果我們將 public class cal 這一段剪到另一個檔案 cal.java 當中,就會造成編譯錯誤,並且無法執行。 可是我之前記得這樣做應該是可以執行的才對啊,到底問題是出在什麼地方呢? 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
c905165 你好: 試試看在兩個檔案的最前面加上關鍵字 package XXXXXX import ........; 不過一般來說,如果所有 *.java 放在同一個目錄下 應該是可以找得到的,請問你有連 cal.java 一起 compile 嗎? 還是說,你的 classpath 沒有設定本身 project 的目錄? -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/06/16 12:54:00
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-16 16:25:37 IP:218.162.xxx.xxx 未訂閱
版主您好,
引言: 試試看在兩個檔案的最前面加上關鍵字 package XXXXXX import ........; 不過一般來說,如果所有 *.java 放在同一個目錄下 應該是可以找得到的,請問你有連 cal.java 一起 compile 嗎? 還是說,你的 classpath 沒有設定本身 project 的目錄?
很抱歉,沒有說明白。我有將二個檔案擺在同一個目錄當中,才來編譯。因為二個檔案都是我寫的嘛,所以就擺在一起。不過我沒有設classpath,因為我想既然擺在一起就不用設。 至於import和package,應該也是一樣吧,通常只要所有的原始碼擺在同一個目錄就不會想到要import什麼的。 記得之前我在用的時候,都是可以正常編譯的。不過這一次卻不知道為什麼,就是編譯不起來。前後看來看去又看不出來是什麼地方出了問題,聽老師說被呼叫的cal.java要改成static,結果改一改又不是。想不到我就整個掛在這邊。 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-16 16:39:35 IP:203.73.xxx.xxx 未訂閱
引言: 很抱歉,沒有說明白。我有將二個檔案擺在同一個目錄當中,才來編譯。因為二個檔案都是我寫的嘛,所以就擺在一起。不過我沒有設classpath,因為我想既然擺在一起就不用設。 至於import和package,應該也是一樣吧,通常只要所有的原始碼擺在同一個目錄就不會想到要import什麼的。 記得之前我在用的時候,都是可以正常編譯的。不過這一次卻不知道為什麼,就是編譯不起來。前後看來看去又看不出來是什麼地方出了問題,聽老師說被呼叫的cal.java要改成static,結果改一改又不是。想不到我就整個掛在這邊。 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
c905165 你好: 先設 classpath 再說
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-16 17:01:49 IP:218.162.xxx.xxx 未訂閱
引言: c905165 你好: 先設 classpath 再說 >< face="Verdana, Arial, Helvetica"> 果然就可以了! 不過,道理還是想不通。為什麼書上會講classpath是在"放在不同目錄"時才用設,所以說書只能參考。謝謝您 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
系統時間:2024-05-18 14:09:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!