簡體   English   中英

如何在命令提示符下運行 NetBeans 項目?

[英]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 的名稱
  1. 最好將 javac 添加到您的 PATH 環境變量中,而不是將 .java 文件與它放在同一目錄中。 那里會變得非常擁擠。
  2. 要運行,您只需要

    java Main

    而不是將每個 class 放在命令行上。

  3. 您是否在您的.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.exejava.exejavac.exe等(如果您需要有關操作的說明,請參閱此線程中的其他帖子那)。

1) 在 Netbeans 中進行干凈的構建,按F11或單擊Run菜單並單擊Build Project 單擊以通過所有提示,您需要一個干凈的構建來執行此操作。

2) 在命令提示符中導航到項目的dist文件夾

3)在命令行輸入並運行: java -jar yourMainFile.jar

無需創建單獨的文件夾,無需復制文件,也無需在命令行參數中包含多個文件。 但是每次在命令行上運行代碼之前,您都必須重新構建您的項目。

請按照以下步驟操作(代碼示例只是示例,您需要針對您的設置進行一些調整):

  1. 將您的 JAVA_HOME 設置為安裝 JDK 的目錄。

    設置 JAVA_HOME="c:\Program Files\Java\jre1.6.0_12"

  2. 設置您的 PATH 以在 JAVA_HOME 中包含bin目錄。

    設置 PATH=%PATH%:%JAVA_HOME%\bin

  3. 切換到源代碼的根目錄。 如果您已將代碼聲明在包中,則這是 package 結構的根目錄。 如果沒有,這是包含您的 .java 文件的目錄:

    cd c:\My\Source\Directory

  4. 使用您的 Java 文件作為參數執行 javac:

    javac Class1.java Class2.java

  5. (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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM