第一个hello world java程序可以在Eclipse中工作,但不能在命令提示符下工作
我知道这个问题以前已经被回答过了,但是作为一个试图开始学习Java的新手,我非常感谢你能给我一个具体的答案 在Eclipse中,当我使用以下代码按run时,它工作正常第一个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
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正在做什么。祝你好运 按照下面提到的步骤操作,您应该能够从命令提示符运行程序:
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
。请明确使用此较新版本,然后重试。祝您好运!