[英]How to run a NetBeans project in command prompt?
我的教授要求我們創建一個 Java 程序,該程序可以在命令提示符下運行,但也可以使用 NetBeans 打開。
該程序是關於使用不同類型的排序(特別是選擇、插入、交換、快速和堆排序)。 我們的教授特別告訴我們在 Java 中使用面向 object 的編程,並且她希望看到一個主要的 class 以及可以進行排序的不同類。
我嘗試在 NetBeans 中編寫程序 - 認為稍后我可以使用 javac 在 cmd 中簡單地運行程序。
在 cmd 中,我輸入了保存 NetBeans 項目的路徑,並嘗試使用 javac 編譯文件。 但它說“'javac' 不被識別為內部或外部命令、可運行程序或批處理文件。”
所以我嘗試將文件保存在 sun>sdk>jdk>bin 中,並從那里嘗試編譯文件,結果很好。 當我嘗試運行它們時,問題就出現了。
這是我嘗試編譯文件的方式:
javac Main.java
Sortchoice.java
Selection.java
SelectionSort.java
Insertion.java
InsertionSort.java
Exchange.java
ExchangeSort.java
(我還沒有完成接下來兩個排序的語法。)
以下是我嘗試在 cmd 中運行文件的方法:
java Main Sortchoice Selection SelectionSort Insertion InsertionSort Exchange ExchangeSort
和 cmd 說:
exception in thread "main" java.lang.NoClassDefFoundError: main (wring name: myjava/Main)
at java.lang.ClassLoader.defineClass1(Nativ... Method)"
at java.lang.ClassLoader.defineClass(ClassL...
at java.security.SecureClassLoader.defineCl...
at java.net.URLClassLoader.defineClass(URLC...
at java.net.URLClassLoader.access$000(URLCl...
at java.net.URLClassLoader$1.run(URLClassLo...
at java.security.AccessController.doPrivile... Method)
at java.net.URLClassLoader.findClass(URLCla...
at java.lang.ClassLoader.loadClass(ClassLoa...
at sun.misc.Launcher&AppClassLoader.loadCla...
at java.lang.ClasLoader.loadClass(ClassLoad...
at java.lang.ClassLoader.loadClassInternal(...
我應該怎么辦? (對不起,我的解釋很長。我只是想提供盡可能多的細節。)
我還要強調一下,我只是 Java 編程的初學者。
如果您單擊 NetBeans 內的構建,它應該(在您的編譯器輸出中)給您一條消息,例如“要在沒有 Ant 的情況下從命令行運行此應用程序,請嘗試:java -jar yourPathToRun”
最好的方法是:
1) 在其中創建一個包含src\
和tests\
的目錄(如果您不使用 JUnit,測試是可選的)。
2)假設你有package myjava;
在你的文件的頂部(並確保這是你的教授想要的,如果它們不在正確的位置,標記東西會變得很痛苦),創建一個src\myjava
目錄(如果你正在做 JUnit tests\myjava
目錄)。
3) 將文件復制到src\myjava
目錄
4) 刪除您的 NetBeans 項目並使用現有源重新創建它。 當您設置src
(和可選的test
)目錄時,添加src\
(和可選的tests\
)目錄。 不要添加src\myjava
目錄,否則它在 NetBeans 中不起作用。
5)創建一個名為classes\
的目錄(所以你有src\
, classes\
,也許\tests
都在同一個地方)
6) 在命令行輸入javac -d classes -cp classes src/myjava/*.java
-d
告訴編譯器將 .class 文件放在哪里-cp
告訴編譯器在哪里尋找類文件src/myjava/*.java
告訴它編譯src/myjava
中的所有 .java 文件 7) 通過java -cp classes myjava.Main
運行它
-cp
classes 告訴它在 classes 目錄中查找 .class 文件myjava.Main
是要運行的 class 的名稱要運行,您只需要
java Main
而不是將每個 class 放在命令行上。
您是否在您的.java 文件中聲明了 package ? 喜歡,
package myjava;
? 如果是這樣,命令字符串必須是
java myjava.Main
這能回答你的問題嗎?
右鍵我的電腦>屬性>高級>環境變量...將jdk中的bin目錄添加到Path變量示例中: 變量名:path 變量值:C:\Program Files\Java\jdk1.6.0_16\bin
java 和 javac 現在應該在命令提示符下的任何目錄中工作
在某處創建一個文件夾,例如C:\myjava
。 例如,從 netbeans 將它們保存到C:\java
的任何位置復制您的.java
源文件。 打開您剛剛粘貼的每個.java
文件並刪除說明 package 的行,例如package myjava
。 使用javac
,例如javac c:\myjava\MyJava.java
。 然后運行它, java c:\myjava\MyJava
最簡單的方法是運行項目主文件夾下dist
文件夾中的.jar
文件。 確保您計算機System
中 jdk bin
文件夾的路徑, Environmental Variables
設置為找到通常的路徑: jar.exe
、 java.exe
、 javac.exe
等(如果您需要有關操作的說明,請參閱此線程中的其他帖子那)。
1) 在 Netbeans 中進行干凈的構建,按F11
或單擊Run
菜單並單擊Build Project
。 單擊以通過所有提示,您需要一個干凈的構建來執行此操作。
2) 在命令提示符中導航到項目的dist
文件夾
3)在命令行輸入並運行: java -jar yourMainFile.jar
無需創建單獨的文件夾,無需復制文件,也無需在命令行參數中包含多個文件。 但是每次在命令行上運行代碼之前,您都必須重新構建您的項目。
請按照以下步驟操作(代碼示例只是示例,您需要針對您的設置進行一些調整):
將您的 JAVA_HOME 設置為安裝 JDK 的目錄。
設置 JAVA_HOME="c:\Program Files\Java\jre1.6.0_12"
設置您的 PATH 以在 JAVA_HOME 中包含bin
目錄。
設置 PATH=%PATH%:%JAVA_HOME%\bin
切換到源代碼的根目錄。 如果您已將代碼聲明在包中,則這是 package 結構的根目錄。 如果沒有,這是包含您的 .java 文件的目錄:
cd c:\My\Source\Directory
使用您的 Java 文件作為參數執行 javac:
javac Class1.java Class2.java
(Assuming everything compiles correctly) Execute java
with the name of the class containing your main method as the argument (if you included package declarations, then your class name is fully-qualified, meaning it should include the package name before the class name, with '.' 將 package 名稱與 class 名稱分開):
java 主
您的項目中將有一個構建目錄。 導航到它。 接下來打開類文件夾。
現在在這里打開終端並運行java x/y
其中x 是 package 您的主要 class 所在的名稱,y 是該 java 文件的名稱
注釋掉 class.java 文件中的 package 行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.