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

时间:2009-03-09 16:15:29

标签: java command-line netbeans

我的教授要求我们创建一个能够在命令提示符下运行的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编程的初学者。

9 个答案:

答案 0 :(得分:22)

如果在NetBeans中单击构建,它应该(在编译器输出中)给出一条消息,例如“要从没有Ant的命令行运行此应用程序,请尝试: java -jar yourPathToRun“

答案 1 :(得分:13)

最好的方法是:

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告诉编译器在哪里查找classfiles
  • src/myjava/*.java告诉它编译src/myjava
  • 中的所有.java文件

7)通过java -cp classes myjava.Main

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

答案 2 :(得分:6)

  1. 最好将javac添加到PATH环境变量中,而不是将.java文件放入同一目录中。它会非常拥挤。
  2. 要运行,您只需要

      

    java Main

    而不是将每个类放在命令行上。

  3. 您是否在.java文件中声明了一个包?像,

      

    打包myjava;

    ?如果是,则命令字符串必须为

      

    java myjava.Main

  4. 这会回答你的问题吗?

答案 3 :(得分:1)

右键单击我的电脑>属性>高级>环境变量...将jdk中的bin目录添加到Path变量 例: 变量名称:路径 变量值:C:\ Program Files \ Java \ jdk1.6.0_16 \ bin

java和javac现在应该可以在命令提示符的任何目录中使用

答案 4 :(得分:0)

按照以下步骤操作(代码示例只是示例,您需要调整一些以进行设置):

  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. 切换到源代码的根目录。如果您已将代码声明为包,则这是包结构的根目录。如果没有,这是包含.java文件的目录:

    cd c:\ My \ Source \ Directory

  4. 以Java文件作为参数执行javac:

    javac Class1.java Class2.java

  5. (假设所有内容都正确编译)使用包含main方法的类的名称作为参数执行java(如果包含包声明,那么您的类名是完全限定的,这意味着它应该在类名之前包含包名,并使用“。”将包名与类名分开:

    java Main

答案 5 :(得分:0)

在某处创建一个文件夹,比如C:\myjava。将您的.java源文件从netbeans保存到C:\java的位置复制到您的.java。打开刚刚粘贴的这些package myjava文件中的每一个,并删除指明包裹的行,例如javac。使用javac c:\myjava\MyJava.java进行编译,例如c:\myjava\MyJava。然后像在java CREATE TABLE #TEST ( ID INT IDENTITY(1,1) NOT NULL, Cnt INT NOT NULL, DescTableName VARCHAR(100) NULL ) INSERT INTO #TEST (Cnt, DescTableName) SELECT COUNT(*) AS Cnt, 'citycount' AS DescTableName FROM dbo.[Subscriptions] INSERT INTO #TEST (Cnt, DescTableName) SELECT COUNT(*) AS Cnt, 'countrycount' AS DescTableName FROM dbo.ReportSchedule INSERT INTO #TEST (Cnt, DescTableName) SELECT COUNT(*) AS Cnt, 'address' AS DescTableName FROM msdb.dbo.sysjobs SELECT * FROM #TEST DROP TABLE #TEST

中一样运行它

答案 6 :(得分:0)

最简单的方法是在项目主文件夹下的.jar文件夹中运行dist文件。确保计算机binSystem中jdk Environmental Variables文件夹的路径设置为常规:jar.exejava.exe,{{1}等等,(如果您需要有关此操作的说明,请参阅此主题中的其他帖子。)

1)在Netbeans中进行干净的构建,按javac.exe或点击F11菜单,然后点击Run。单击以通过所有提示,您需要一个干净的构建来执行此操作。

2)在命令提示符中导航到项目的Build Project文件夹

3)在命令行输入并运行:dist

不创建单独的文件夹,不复制文件,也不要在命令行参数中包含多个文件。但是,每次更改代码之前,必须重新构建项目,然后才能在命令行上运行它。

答案 7 :(得分:0)

您的项目中将有一个 build 目录。导航到它。接下来打开课程文件夹。
现在在这里打开终端并运行java x/y
其中其中x是您的主类所在的包的名称,y是该java文件的名称

答案 8 :(得分:-1)

注释掉 class.java 文件中的 package 行。