第一个hello world java程序可以在Eclipse中工作,但不能在命令提示符下工作

第一个hello world java程序可以在Eclipse中工作,但不能在命令提示符下工作,java,Java,我知道这个问题以前已经被回答过了,但是作为一个试图开始学习Java的新手,我非常感谢你能给我一个具体的答案 在Eclipse中,当我使用以下代码按run时,它工作正常 public class MySweetProgram { public static void main(String[] args) { System.out.println("Hello there!"); } } 但是,当我在命令提示符下转到C:\Program Files(x86

我知道这个问题以前已经被回答过了,但是作为一个试图开始学习Java的新手,我非常感谢你能给我一个具体的答案

在Eclipse中,当我使用以下代码按run时,它工作正常

public class MySweetProgram {

    public static void main(String[] args) {
        System.out.println("Hello there!");

    }


}
但是,当我在命令提示符下转到C:\Program Files(x86)\Java\jre1.8.0\U 241\bin并键入Java MySweetProgram时,我会收到一个错误,说无法加载或查找主类MySweetProgram

我搜索了其他建议设置类路径的线程。我的设置为C:\ProgramFiles(x86)\Java\jre1.8.0\U 241\lib。 我将Classpath中的文件夹从lib更改为bin,但得到了相同的错误,所以我再次将其更改回原来的位置

我做了一个java版本,得到如下结果:

java版本“1.8.0_241” Java(TM)SE运行时环境(build 1.8.0_241-b07) Java热点(TM)客户端虚拟机(构建25.241-b07,混合模式)

有人能就他们认为可能存在的问题向我提供建议吗? 如果这是一个无知的问题,我道歉 谢谢
吉米

欢迎!Eclipse将为您编译代码,然后运行它。当您单击run时,它会为您完成所有这些,从而使您作为开发人员的生活稍微轻松一些。如果您想从命令行编译并运行该命令,则需要确保您可以访问jdk(它必须由Eclipse安装在某个地方,但可能不会立即显示在某个文件夹中,该文件夹可能名为/something/jdk/)。在path上(在%path%变量中),以下内容适用于您:

cd /to/where/your/code/is
javac MySweetProgram.java
java -cp . MySweetProgram

查看编译及其含义,以便更好地了解Eclipse正在做什么。祝你好运

按照下面提到的步骤操作,您应该能够从命令提示符运行程序:

  • 右键单击eclipse>
    Properties
    >中的
    MySweetProgram.java
    ,复制此文件所在目录的完整路径
  • 打开命令提示符,输入在上述步骤中复制的路径
  • 输入
    del MySweetProgram.class
  • 输入
    javacmysweetprogram.java
  • 输入
    java MySweetProgram

  • 编译
    .java
    文件时,在您的例子中是
    MySweetProgram.java
    ,您可以决定要将可执行文件放到哪里。该文件将被称为
    MySweetProgram.class
    。Eclipse可能将这两个文件保存在不同的目录中

    通常(在Java11之前)只能运行
    .class
    文件。因此,您必须为java添加classpath(-cp)参数才能找到您的文件:

    java -cp path MySweetProgram   (don't put the .class)
    
    现在(在Java11之后)您可以直接运行java文件,因为当您给它一个
    .java
    文件时,它会在执行之前为您编译它:

    java MySweetProgram.java       (if you're in the directory)
    java path\MySweetProgram.java
    
    如果目录中有MySweetProgram.class,则会出现错误


    当您使用包时,它会变得稍微复杂一些,但是Oracle有一些非常好的

    这取决于
    MySweetProgram
    存储在哪个“包”中。但是,您应该从项目根包上方的目录开始,并使用
    javacpath/to/class/MySweetProgram.java
    确保它已编译。然后可以使用
    java path.to.class.MySweetProgram
    运行itNo,它位于我的C:\Users****\eclipse workspace\Hello\bin文件夹中。但是当我从那里运行相同的命令时,我得到了相同的结果error@MadProgrammer这是有史以来的第一节课。我希望它是默认的包。是的,它在SRC中被称为“deafult包”folder@JimmyJ将目录更改为
    src
    文件夹(在其中),然后只需使用
    javac MySweetProgram.java
    编译它,然后
    java MySweetProgram
    运行它-我已经很久没有做任何CLIHi了,谢谢你的回复。我执行了步骤1、2和3,没有出错。但是步骤4给了我同样的无法加载或查找主类错误:(抱歉,Arvind,但我不确定我是否理解你的问题。线程中有完整的代码。我是这方面的新手,所以请原谅我的问题嗨,Scratte,我正在使用java MySweetProgram。这是cmd提示符的副本。C:\Users****\eclipse workspace\Hello\src>javac MySweetProgram.java C:\Users****\eclipse workspace\Hello\src>java MySweetProgram错误:无法找到或加载主类MySweetProgram,谢谢您的回复。运行java-cp.MySweetProgram现在会出现以下错误:C:\Users\a\eclipse workspace\Hello\src>java-cp.MySweetProgram错误:发生JNI错误,请检查您的安装并重试线程“main”中的异常java.lang.UnsupportedClassVersionError:MySweetProgram由java运行时的最新版本(类文件版本57.0)编译,此版本的Java运行时仅识别高达52.0的类文件版本。您的Java C版本比您的路径上的Java版本更新。您使用的jdk应附带一个
    Java.exe
    。请明确使用此较新版本,然后重试。祝您好运!