2012-04-02 58 views
0

我構建了我的java程序作爲uni任務的一部分,並且作爲提交的一部分,它必須能夠在DOS窗口中編譯和運行(讀取Windows命令窗口)。該程序在Netbeans中運行正常,但是當我將所有.java文件複製到單獨的文件夾並嘗試編譯每個文件時,我會遇到大量的編譯錯誤。當我在Netbeans中創建這些文件時,我將它們全部包含在一個包中,並讓Netbeans在每個類的頂部添加一個「包* Project_Name *」。其餘的是標準的Java,沒有太複雜的。我第一次使用Netbeans(版本7.1.1是我正在使用的),它讓我瘋狂。我可以創建一個.jar文件,我可以從命令行運行它,但我需要能夠顯示源代碼可以從命令行編譯,並且生成的文件也可以從命令運行線。有沒有其他人有這個問題,如果是的話,你是如何克服它的,或者沒有人知道如何解決這個問題。無法將Netbeans生成的.java文件編譯到命令行上的.class中

我有一種感覺與其他文件的引用有關,因爲大多數錯誤都與創建的對象和從其他文件調用的方法有關。例如,我有一個Manager.java文件,該文件具有Manager對象的構造函數和方法,然後在另一個文件(比如Proprety.java)中有我使用new關鍵字創建Manager對象的代碼。

使用當前CLASSPATH Im爲

CLASSPATH =; C:\ Program Files文件\的java \ jdk1.7.0_03 \ lib中; C:\ Program Files文件\爪哇\ JRE6 \ lib中\分機\ QTJava.zip ;

PATH變量的設置類似於

...; C:\ Program Files文件\的Java \ jdk1.7.0_03 \ BIN; C:\ Program Files文件\的Java \ jre7 \ BIN

而且而已。我使用的唯一庫是java.util。*和java.io. *所有其他參考都是我在Netbeans中創建的類文件

任何幫助都會真正被理解。 SET命令的

結果:

C:\>set 
ALLUSERSPROFILE=C:\ProgramData 
APPDATA=C:\Users\Gunit\AppData\Roaming 
asl.log=Destination=file 
CLASSPATH=.;C:\Program Files\java\jdk1.7.0_03\lib;C:\Program Files\Java\jre6\lib 
\ext\QTJava.zip;C:\Estateman 
CommonProgramFiles=C:\Program Files\Common Files 
COMPUTERNAME=GUNIT-PC 
ComSpec=C:\Windows\system32\cmd.exe 
FP_NO_HOST_CHECK=NO 
HOMEDRIVE=C: 
HOMEPATH=\Users\Gunit 
LOCALAPPDATA=C:\Users\Gunit\AppData\Local 
LOGONSERVER=\\GUNIT-PC 
MOZ_PLUGIN_PATH=C:\Program Files\SumatraPDF\ 
NUMBER_OF_PROCESSORS=2 
OS=Windows_NT 
Path=C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\syst 
em32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v 
1.0\;C:\Program Files\Common Files\Acronis\SnapAPI\;c:\Program Files\Microsoft S 
QL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C: 
\Program Files\Windows Live\Shared;C:\Program Files\QuickTime\QTSystem\;C:\Progr 
am Files\Common Files\Avid;Avid;C:\Program Files\doxygen\bin;C:\Program Files\Co 
mmon Files\Adobe\AGL;C:\Program Files\Java\jdk1.7.0_03\bin;C:\Program Files\Java 
\jre7\bin 
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC 
PROCESSOR_ARCHITECTURE=x86 
PROCESSOR_IDENTIFIER=x86 Family 15 Model 6 Stepping 5, GenuineIntel 
PROCESSOR_LEVEL=15 
PROCESSOR_REVISION=0605 
ProgramData=C:\ProgramData 
ProgramFiles=C:\Program Files 
PROMPT=$P$G 
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ 
PUBLIC=C:\Users\Public 
QTJAVA=C:\Program Files\Java\jre6\lib\ext\QTJava.zip 
SESSIONNAME=Console 
SystemDrive=C: 
SystemRoot=C:\Windows 
TEMP=C:\Users\Gunit\AppData\Local\Temp 
TMP=C:\Users\Gunit\AppData\Local\Temp 
USERDOMAIN=Gunit-PC 
USERNAME=Gunit 
USERPROFILE=C:\Users\Gunit 
VS100COMNTOOLS=c:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\ 
windir=C:\Windows 

命令進出口運行:

C:\Estateman>javac Manager.java 

輸出:

Manager.java:33: error: cannot find symbol 
     Property temp0 = new Rental(24,"Bogan Ave","Geelong",3040,"Bob Jones 
","0420685765","Victoria","Tues 8am",280.50,"23/4/2012"); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:33: error: cannot find symbol 
     Property temp0 = new Rental(24,"Bogan Ave","Geelong",3040,"Bob Jones 
","0420685765","Victoria","Tues 8am",280.50,"23/4/2012"); 
          ^
symbol: class Rental 
location: class Manager 
Manager.java:34: error: cannot find symbol 
     Property temp1 = new Selling(56,"Maritime Rd","Perth",6000,"Alan Gib 
s","0400345964","Perth","Wed 3pm",350485.00); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:34: error: cannot find symbol 
     Property temp1 = new Selling(56,"Maritime Rd","Perth",6000,"Alan Gib 
s","0400345964","Perth","Wed 3pm",350485.00); 
          ^
symbol: class Selling 
location: class Manager 
Manager.java:35: error: cannot find symbol 
     Property temp2 = new Selling(901,"Preston Rd","Murdoch",6505,"Alan G 
ibs","0400345964","Perth","Fri 10am",890000.00); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:35: error: cannot find symbol 
     Property temp2 = new Selling(901,"Preston Rd","Murdoch",6505,"Alan G 
ibs","0400345964","Perth","Fri 10am",890000.00); 
          ^
symbol: class Selling 
location: class Manager 
Manager.java:36: error: cannot find symbol 
     Property temp3 = new Rental(83,"Joke Way","Murdoch",6505,"Grace Kell 
y","","Winthrop","Fri 1pm",475.00,"18/4/2012"); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:36: error: cannot find symbol 
     Property temp3 = new Rental(83,"Joke Way","Murdoch",6505,"Grace Kell 
y","","Winthrop","Fri 1pm",475.00,"18/4/2012"); 
          ^
symbol: class Rental 
location: class Manager 
Manager.java:37: error: cannot find symbol 
     Property temp4 = new Selling(167,"Joke Way","Murdoch",6505,"Bob Jone 
s","0420685765","Victoria","Sat 3pm","17/5/2012"); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:37: error: cannot find symbol 
     Property temp4 = new Selling(167,"Joke Way","Murdoch",6505,"Bob Jone 
s","0420685765","Victoria","Sat 3pm","17/5/2012"); 
          ^
symbol: class Selling 
location: class Manager 
Manager.java:38: error: cannot find symbol 
     Property temp5 = new Selling(2,"Ashbury Lane","Success",6110,"Ian Fi 
elder","0895484453","Atwell","Mon 11am",900000.00); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:38: error: cannot find symbol 
     Property temp5 = new Selling(2,"Ashbury Lane","Success",6110,"Ian Fi 
elder","0895484453","Atwell","Mon 11am",900000.00); 
          ^
symbol: class Selling 
location: class Manager 
Manager.java:54: error: cannot find symbol 
     Utils u = new Utils(); 
     ^
symbol: class Utils 
location: class Manager 
Manager.java:54: error: cannot find symbol 
     Utils u = new Utils(); 
        ^
symbol: class Utils 
location: class Manager 
Manager.java:84: error: cannot find symbol 
      Property temp = new Selling(num,name,sub,code,person,phone,offic 
e,open,price); 
      ^
symbol: class Property 
location: class Manager 
Manager.java:84: error: cannot find symbol 
      Property temp = new Selling(num,name,sub,code,person,phone,offic 
e,open,price); 
           ^
symbol: class Selling 
location: class Manager 
Manager.java:92: error: cannot find symbol 
       Property temp = new Rental(num,name,sub,code,person,phone,of 
fice,open,price,vacant); 
       ^
symbol: class Property 
location: class Manager 
Manager.java:92: error: cannot find symbol 
       Property temp = new Rental(num,name,sub,code,person,phone,of 
fice,open,price,vacant); 
            ^
symbol: class Rental 
location: class Manager 
Manager.java:156: error: cannot find symbol 
      Property temp = (Property)(itr.next()); 
      ^
symbol: class Property 
location: class Manager 
Manager.java:156: error: cannot find symbol 
      Property temp = (Property)(itr.next()); 
          ^
symbol: class Property 
location: class Manager 
Manager.java:165: error: cannot find symbol 
        Rental rTemp = (Rental)(temp); 
        ^
symbol: class Rental 
location: class Manager 
Manager.java:165: error: cannot find symbol 
        Rental rTemp = (Rental)(temp); 
            ^
symbol: class Rental 
location: class Manager 
Manager.java:173: error: cannot find symbol 
        Selling sTemp = (Selling)(temp); 
        ^
symbol: class Selling 
location: class Manager 
Manager.java:173: error: cannot find symbol 
        Selling sTemp = (Selling)(temp); 
            ^
symbol: class Selling 
location: class Manager 
Manager.java:180: error: cannot find symbol 
        Selling sTemp = (Selling)(temp); 
        ^
symbol: class Selling 
location: class Manager 
Manager.java:180: error: cannot find symbol 
        Selling sTemp = (Selling)(temp); 
            ^
symbol: class Selling 
location: class Manager 
Manager.java:198: error: cannot find symbol 
     Utils u = new Utils(); 
     ^
symbol: class Utils 
location: class Manager 
Manager.java:198: error: cannot find symbol 
     Utils u = new Utils(); 
        ^
symbol: class Utils 
location: class Manager 
Manager.java:199: error: cannot find symbol 
     Property tmp = new Property(); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:199: error: cannot find symbol 
     Property tmp = new Property(); 
         ^
symbol: class Property 
location: class Manager 
Manager.java:212: error: cannot find symbol 
      Property temp = (Property)(itr.next()); 
      ^
symbol: class Property 
location: class Manager 
Manager.java:212: error: cannot find symbol 
      Property temp = (Property)(itr.next()); 
          ^
symbol: class Property 
location: class Manager 
Manager.java:238: error: cannot find symbol 
     Property temp = new Property(); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:238: error: cannot find symbol 
     Property temp = new Property(); 
          ^
symbol: class Property 
location: class Manager 
Manager.java:239: error: cannot find symbol 
     Utils u = new Utils(); 
     ^
symbol: class Utils 
location: class Manager 
Manager.java:239: error: cannot find symbol 
     Utils u = new Utils(); 
        ^
symbol: class Utils 
location: class Manager 
Manager.java:249: error: cannot find symbol 
     ((Property)(properties.get(i))).address.setStreetNum(num); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:250: error: cannot find symbol 
     ((Property)(properties.get(i))).address.setStreetName(name); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:251: error: cannot find symbol 
     ((Property)(properties.get(i))).address.setSuburb(sub); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:252: error: cannot find symbol 
     ((Property)(properties.get(i))).address.setPostCode(code); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:266: error: cannot find symbol 
     Utils u = new Utils(); 
     ^
symbol: class Utils 
location: class Manager 
Manager.java:266: error: cannot find symbol 
     Utils u = new Utils(); 
        ^
symbol: class Utils 
location: class Manager 
Manager.java:273: error: cannot find symbol 
     Property temp = new Property(); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:273: error: cannot find symbol 
     Property temp = new Property(); 
          ^
symbol: class Property 
location: class Manager 
Manager.java:280: error: cannot find symbol 
     ((Property)(properties.get(i))).contact.setContact(name,phone,office 
); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:296: error: cannot find symbol 
      Property temp = (Property)(itr.next()); 
      ^
symbol: class Property 
location: class Manager 
Manager.java:296: error: cannot find symbol 
      Property temp = (Property)(itr.next()); 
          ^
symbol: class Property 
location: class Manager 
Manager.java:311: error: cannot find symbol 
     Utils u = new Utils(); 
     ^
symbol: class Utils 
location: class Manager 
Manager.java:311: error: cannot find symbol 
     Utils u = new Utils(); 
        ^
symbol: class Utils 
location: class Manager 
Manager.java:317: error: cannot find symbol 
     Property temp = new Property(); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:317: error: cannot find symbol 
     Property temp = new Property(); 
          ^
symbol: class Property 
location: class Manager 
Manager.java:320: error: cannot find symbol 
     ((Property)(properties.get(i))).viewing.setTime(time); 
     ^
symbol: class Property 
location: class Manager 
Manager.java:332: error: cannot find symbol 
     Utils u = new Utils(); 
     ^
symbol: class Utils 
location: class Manager 
Manager.java:332: error: cannot find symbol 
     Utils u = new Utils(); 
        ^
symbol: class Utils 
location: class Manager 
Manager.java:341: error: cannot find symbol 
      Property temp = (Property)(itr.next()); 
      ^
symbol: class Property 
location: class Manager 
Manager.java:341: error: cannot find symbol 
      Property temp = (Property)(itr.next()); 
          ^
symbol: class Property 
location: class Manager 
57 errors 

C:\Estateman> 

在此先感謝

+0

你設定一個適當的類路徑?你並沒有真正提供任何我們可以用來幫助的實際信息。 – 2012-04-02 12:17:51

+0

你應該包含一些關於使用類的基本信息。你設置了正確的類路徑嗎?你使用庫嗎? – dexametason 2012-04-02 12:19:17

+0

我試圖編譯的文件位於C:\ Estateman – gwunta 2012-04-02 12:36:55

回答

1

好吧,我認爲,關鍵這裏是:

我將它們全部包含在一個包中,讓Netbeans在每個類的頂部添加一個「package * Project_Name *」。

而且你的命令編譯:

javac Manager.java

假設你的包名projectname。然後Netbeans創建了一個目錄projectname,並將其中的所有Java文件Manager.javaProperty.java等放在其中。

在Java中,包結構直接對應於文件系統中的目錄結構。例如。如果您在包x.y.z中包含類A,則類A的源代碼文件位於文件x\y\z\A.java中。

因此,當您複製所有的*.java文件時,您必須確保也複製原始目錄結構。在你的情況下,你可以複製你的類Manager.java,Property.java,...到C:\test\projectname。然後在你的DOS窗口cd到該目錄,並編譯類:

javac -cp .. Manager.java 

-cp ..命令行選項的意思是,你的包/目錄結構的根是一個級別的C:\test。然後,在編譯Manager.java時,Java編譯器找到對類Property的引用,並且它假定類Property與類Manager處於相同的包中。所以編譯器正在尋找類projectname.Property。當-cp選項指向C:\ţest時,編譯器知道它應該查看目錄C:\test\projectname

編譯就可以運行你的程序後:

java -cp .. projectname.Manager