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

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Complier Java File!!
Vicky_0110





發文: 65
積分: 0
於 2004-03-17 13:22 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
您好,
因為之前都是用gel complier & 執行java程式,
現在在dos command下,卻會出現如圖的問題,
是因為package的關係嗎??
哪邊沒有關連到?? 謝謝您…


reply to postreply to post
作者 Re:Complier Java File!! [Re:Vicky_0110]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2004-03-17 14:20 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
Vicky_0110 wrote:
您好,
因為之前都是用gel complier & 執行java程式,
現在在dos command下,卻會出現如圖的問題,
是因為package的關係嗎??
哪邊沒有關連到?? 謝謝您…


這是因為你在編譯 Test.java(class flatware.mes.Test) 時,RouteStep_Panel.class 不存在(RouteStep_Panel 尚未編譯),或 RouteStep_Panel.class 存在但執行環境找不到(Test 參考到 RouteStep_Panel,所以編譯時必須載入 RouteStep_Panel bytecode 作一些 type checking 之類的)。

你只要在 D:\Swing_Client\src 目錄下(或其他目錄請看例子中命令列提示),下這樣的 command:(假設你的 classpath 有包含 .)
1
D:\Swing_Client\src>javac -d . flatware\mes\Test.java



1
2
D:\Swing_Client\src>javac -d . -sourcepath . flatware\mes\Test.java
D:\Swing_Client> javac -d src -sourcepath src src\flatware\mes\Test.java


你目前的做法是把 class file 和 source file mix 在一起,我的建議是試著把 source 與 class file 分開管理會比較好。並了解一下 classpath(這是一定要)與 sourcepath 的意義。

sourcepath 類似 classpath,差別在於用來指示 source file 的所在之處,sourcepath entry 的意義很接近 classpath,指的是某個 source file 的 root directory 而不是 source file 所在的目錄,比如一個 flatware.mes.Test 參考到 flatware.mes.RouteStep_Panel,當編譯器試著去尋找flatware/mes/RouteStep_Panel.java 時就會到 sourcepath entry 指定的地方,所以 sourcepath entry 應該指定 flatware 所在的目錄,而不是 RouteStep_Panel.java 所在目錄。平常沒有指定 sourcepath 其預設值 copy 自當時的 classpath。


reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:Complier Java File!! [Re:Duncan]
Vicky_0110





發文: 65
積分: 0
於 2004-03-17 15:29 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
Dear Duncan,
感謝你每次都給予我非常完整的解答 ,
讓我從中獲得很多,至於運用你提到的complier方式,確實就成功了,
Complier不加.和-d 也是可以的喲(我的 classpath 有包含 .)
如下
1
D:\Swing_Client\src>javac flatware\mes\Test.java

而執行方法
1
D:\Swing_Client\src>java flatware.mes.Test


謝謝您…


reply to postreply to post
作者 Re:Complier Java File!! [Re:Vicky_0110]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2004-03-17 15:41 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
Vicky_0110 wrote:
Dear Duncan,
感謝你每次都給予我非常完整的解答 ,
讓我從中獲得很多,至於運用你提到的complier方式,確實就成功了,
Complier不加.和-d 也是可以的喲(我的 classpath 有包含 .)


你習慣把 .class 和 .java 放在一起,所以沒什麼差別,讓編譯後的 .class 直接產生在 source code 的目錄。如果你有使用特定的目錄 deposite 所有的 classes,那麼用 -d switch 會很方便。


reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:Complier Java File!! [Re:Duncan]
Vicky_0110





發文: 65
積分: 0
於 2004-03-17 15:46 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
原來是這樣…

那再請問一下,除了使用IDE外,要如何去設定在complier後的.class跟
source code分開呢??
一般都會在一起嘛??
謝謝您…


reply to postreply to post
作者 Re:Complier Java File!! [Re:Vicky_0110]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2004-03-17 16:04 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
Vicky_0110 wrote:
原來是這樣…

那再請問一下,除了使用IDE外,要如何去設定在complier後的.class跟
source code分開呢??
一般都會在一起嘛??
謝謝您…


我之前給的 command 應該就看得出來。

假設你都把 .class 集中在 c:\java\classes(當然 classpath 得包含這個 entry),那麼之前的例子可以這樣編譯:
1
D:\Swing_Client\src>javac -d c:\java\classes -sourcepath . flatware\mes\Test.java


那麼編譯後 Test.class 以及 RouteStep_Panel.class(我想這和 Test 是同一個 package)就會放置在 c:\java\classes\flatware\mes\ 目錄下,而 Test.java 與 RouteStep_Panel.java 中參考到的其他 class 的 .class file 會出現在 c:\java\classes 中對應於 class 所屬的 package 結構的目錄裡(參考到 a.b.c.Foo 會出現在 c:\java\classes\a\b\c 目錄裡),你可以在任何目錄下執行:
1
c:\>java flatware.mes.Test


這樣可以集中管理 class file,要下 command 包裝成 jar 也會比較方便一點。


reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:Complier Java File!! [Re:Duncan]
talangniao





發文: 4
積分: 0
於 2004-12-18 08:45 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
当然classpath得包含这个entry
怎样设的??谢谢
新手


reply to postreply to post
作者 Re:Complier Java File!! [Re:Duncan]
chengshuizhe





發文: 6
積分: 0
於 2005-01-11 21:49 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
当然classpath得包含这个entry
怎样设的??谢谢
新手


建议把新手版FAQ好好看看
c:\>set classpath=c:\java\classes


chengshuizhe edited on 2005-01-11 21:51
reply to postreply to post
作者 Re:Complier Java File!! [Re:Duncan]
smallchickenlee

Javachicken



發文: 80
積分: 1
於 2005-01-14 13:14 user profilesend a private message to usersend email to smallchickenleereply 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大大...
這郭課本沒教,不過很受用喔...Food


reply to postreply to post
我真的好喜歡Java喔...
作者 Re:Complier Java File!! [Re:Vicky_0110]
smallchickenlee

Javachicken



發文: 80
積分: 1
於 2005-01-14 13:32 user profilesend a private message to usersend email to smallchickenleereply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
最近在學Eclipse怎麼使用,看到大大的解說,所以我就將source檔跟class檔分開放...嗯...就像大大說的,要包jar檔真的很方便喔...Big Smile


reply to postreply to post
我真的好喜歡Java喔...
作者 Re:Complier Java File!! [Re:smallchickenlee]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2005-01-14 14:53 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
smallchickenlee wrote:
最近在學Eclipse怎麼使用,看到大大的解說,所以我就將source檔跟class檔分開放...嗯...就像大大說的,要包jar檔真的很方便喔...Big Smile


用 Eclipse 的話,其實不分開放也很方便啦,你只要選擇要打包的 class 的 source file 與相關的資源,選擇 export 成 jar,Eclipse 就會幫你挑出 selected source 產生的 .class。


reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:Complier Java File!! [Re:Duncan]
shaill





發文: 12
積分: 0
於 2005-10-15 14: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
請問Duncan大大,"."是代表什麼意思呢?
之前有看過大大發表過關於package,COMPILE的相關文章
大大有說過,可以利用-sourcepath -d這兩個參數隨意設定路逕
即可以方便的編譯PACKAGE!

而我有PACKAGE WORK,放置在c:\j2sdk\bin\work
1
C:\j2sdk\bin>javac -sourcepath \work BulletinBoard.java

這是看過大大之前所說的方法,成功編譯!
而我用
1
C:\j2sdk\bin>javac -d . BulletinBoard.java

也成功編譯!所以我不懂這兩個有什麼差別?
"."是啥意思?-d後面不是要接放CLASS黨的位置?為啥+個.+個檔名就可以編譯?
麻煩大大解答喔!謝謝!


reply to postreply to post
作者 Re:Complier Java File!! [Re:Vicky_0110]
metavige

麥塔.米奇

版主

發文: 2133
積分: 10
於 2005-10-17 09:07 user profilesend a private message to usersend email to metavigereply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
. 表示的是 "目前所在路徑"

reply to postreply to post
請各位新手參考 論壇規範Java 新手 FAQ
作者 Re:Complier Java File!! [Re:metavige]
shaill





發文: 12
積分: 0
於 2005-10-18 19:02 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
感謝版主的回應!
謝謝!


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