Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java程序在cmd中执行,不使用设置路径或系统变量_Java_Compilation_Execution - Fatal编程技术网

Java程序在cmd中执行,不使用设置路径或系统变量

Java程序在cmd中执行,不使用设置路径或系统变量,java,compilation,execution,Java,Compilation,Execution,我试图在命令提示符下执行一个简单的java程序(“HelloWorld”),而不使用SETPATH选项或设置系统变量。假设java程序位于D:\My\u Programs中,java可执行文件位于C:\program files\java\jdk1.6.0\u 24\bin中。以下是我编译的内容: C:\Program Files\Java\jdk1.6.0\u 24\bin>javac D:\My\u Programs\HelloWorld.Java它正在创建一个.class文件,但相同的执行

我试图在命令提示符下执行一个简单的java程序(“HelloWorld”),而不使用SETPATH选项或设置系统变量。假设java程序位于D:\My\u Programs中,java可执行文件位于C:\program files\java\jdk1.6.0\u 24\bin中。以下是我编译的内容: C:\Program Files\Java\jdk1.6.0\u 24\bin>javac D:\My\u Programs\HelloWorld.Java它正在创建一个.class文件,但相同的执行策略会创建一个异常: C:\Program Files\Java\jdk1.6.0\u 24\bin>javad:\My\u Programs\HelloWorld

Exception in thread "main" java.lang.NoClassDefFoundError: D:\My_Programs\HelloW
orld
Caused by: java.lang.ClassNotFoundException: D:\My_Programs\HelloWorld
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: D:\My_Programs\HelloWorld.  Program will exit.
有人能建议如何执行这个文件吗。 提前感谢你的帮助

守则:

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

因为在运行
javac
时,您所在的是Java目录,而不是程序的目录,所以类文件可能也在那里。这通常是一件坏事-您希望
javac
java
在您的路径中,这样您就可以在程序目录中执行它们。然后您可以使用
java HelloWorld

执行程序。您可以这样尝试java-cp“D:\My_Programs”HelloWorld,前提是您编译的HelloWorld.java是一个主类。

请尝试以下方法:

C:\Program Files\Java\jdk1.6.0_24\bin>java -cp D:\My_Programs HelloWorld
甚至那个:

C:\anywhere> C:\Program Files\Java\jdk1.6.0_24\bin\java -cp D:\My_Programs HelloWorld
-cp
告诉
java
可执行文件在哪里查找类
HelloWorld
。给出一个类似文件的参数
D:\My\u Programms\HelloWorld
,其中Java假定纯packagename+类名将不起作用

java -cp D:\My_Programs HelloWorld

因为要考虑类层次结构中的目录层次结构。

您也可以尝试通过cd D:\My_Programs更改cmd中的目录,然后执行java HelloWorld。它将执行该文件。唯一的先决条件是类文件应该存在于该位置。

在cmd中运行.java文件之前,请将文件重命名为类名,这样才能工作。例如,在本例中,将记事本文件另存为“HelloWorld.java”

一旦
java
javac
二进制文件在您的路径上,它们的位置就不相关了。向我们展示
HelloWorld.Java
中的Java代码。您是否阅读过任何关于创建和运行Java程序的教程?类HelloWorld{public static void main(String[]args){System.out.println(“Hello World!”);//显示字符串。}}您不想在注释中发布代码,因为无法读取。我已经编辑了您的原始帖子,并在那里添加了您的代码。对不起,编辑了原始帖子。HelloWorld.class文件是在D:\My\u程序中生成的,如果设置路径的唯一目的是为了方便,我就不会使用它。如果您不在生成类文件的目录中,则需要将该目录添加到类路径中,通过设置环境变量或在
-cp
参数中将其指定为
java
。顺便说一句,在这里提问而不是在文档中查找也是“为了方便”。如果你想用艰难的方式做每件事,我已经不想再回答你的问题了。对不起,我已经阅读了文档,但未能理解。我是java新手。所以请投票选出对您有用的任何答案(即不止一个),并接受最好的答案(即单击V钩子)。javac呢?javac呢?