繁体   English   中英

从命令行运行Java程序

[英]Running Java program from commandline

我正在尝试从命令行运行Java程序。 我尝试按照此处提到的步骤进行操作。 但是,当我尝试运行javac Hello.java ,抛出了这样的程序不存在的错误。 我试图给java Hello.java并得到错误:

Exception in thread "main" java.lang.NoClassDefFoundError: Hello/java
Caused by: java.lang.ClassNotFoundException: Hello.java
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Hello.java.  Program will exit.

这里有什么问题。 我该怎么做?

编辑:我的代码文件Hello.java中有很多类。 这会引起任何问题吗?

首先,您应该使用

 javac Hello.java

然后运行

 java Hello

在这两种情况下,请确保您的类路径设置正确...

要运行该程序,您需要执行以下操作:

java Hello

这是java后跟没有扩展名的类名。

首先,java每个文件最多需要一个公共类。 没有

public class this {
}

public class that {
}

你可以有

class this {
   class that {
   }
}

如果你需要。

编辑或在文件this.java中:

public class this {
}

class that {
}

javac将不在jre文件夹中。 您安装了jdk吗? 默认情况下,许多计算机上都不提供此功能。 它通常位于“ C:\\ Program Files \\ Java \\ jdk1.6.0_05 \\ bin \\ javac.exe”或类似路径中。

如其他答案所述,首先,您必须使用java Hello而不是java Hello.java运行应用程序

其次,您必须检查您的CLASSPATH是否正确设置。 似乎您的变量未设置或未集成当前目录,即.

因此运行:

javac -classpath . Hello.java
java -classpath Hello

要么

set CLASSPATH=.
javac Hello.java
java Hello

当然,在Windows系统中将CLASSPATH定义为用户/系统变量是一个更好的解决方案!

如果Hello.java包含在包中,则必须创建一个适当的目录结构。 也就是说,如果Hello.java包含在com.stackoverflow包中,则必须创建文件夹com/stackoverflow并将Hello.java放入此文件夹中。 然后必须从根文件夹启动

java com.stackoverflow.Hello

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM