如何在命令提示符下运行 NetBeans 项目?

2022-09-03 09:02:55

我的教授要求我们创建一个 Java 程序,该程序能够在命令提示符下运行,但也可以使用 NetBeans 打开。

该程序是关于使用不同类型的排序(特别是选择,插入,交换,快速和堆排序)。我们的教授特别告诉我们在Java中使用面向对象编程,她希望看到一个主类以及进行排序的不同类。

我试图用 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编程的初学者。


答案 1

如果在 NetBeans 中单击 build,它应该会给你(在编译器输出中)一条消息,如“要从命令行运行此应用程序而不使用 Ant,请尝试:java -jar yourPathToRun”


答案 2

最好的方法是:

1)创建一个包含和的目录(如果您不使用JUnit,则测试是可选的)。src\tests\

2)假设你在文件的顶部(并确保这是你的教授想要的,如果它们不在正确的位置,标记东西就变得很痛苦),创建一个目录(如果你正在做JUnit目录)。package myjava;src\myjavatests\myjava

3)将文件复制到目录中src\myjava

4) 删除您的 NetBeans 项目,然后将其重新创建为具有现有源的新功能。设置(和可选)目录时,添加(和可选)目录。请勿添加该目录,否则它将在 NetBeans 中不起作用。srctestsrc\tests\src\myjava

5)创建一个名为的目录(所以你有,,也许都在同一个地方)classes\src\classes\\tests

6) 在命令行类型上javac -d classes -cp classes src/myjava/*.java

  • -d告诉编译器将.class文件放在何处
  • -cp告诉编译器在何处查找类文件
  • src/myjava/*.java告诉它编译所有.java文件src/myjava

7)运行它通过java -cp classes myjava.Main

  • -cpclasses告诉它在class目录中查找.class文件
  • myjava.Main是要运行的类的名称

推荐