【问题标题】:Simple java program can not be run简单的java程序无法运行
【发布时间】:2013-03-28 18:56:12
【问题描述】:

我正在尝试使用 java 版本 1.6 在 linux 机器上编译和运行 HelloWorld。我得到它编译但无法运行它。我知道该程序至少是正确的。

谁能告诉我如何运行这个愚蠢的程序?

我知道这个问题已被多次提及,但没有找到解决该问题的方法。我使用的编译命令:javac ExampleProgram.java。 我使用的运行命令:java ExampleProgram

//A Very Simple Example
class ExampleProgram {
  public static void main(String[] args){
    System.out.println("I'm a Simple Program");
  }
}

错误:

java -classpath . ExampleProgram
Exception in thread "main" java.lang.UnsupportedClassVersionError: ExampleProgram : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: ExampleProgram.  Program will exit.

【问题讨论】:

  • 你正在使用不同版本的java编译和运行
  • 这对我如何解决问题没有多大帮助。当我检查 java 的版本时,它告诉我: java version "1.6.0_35" Java(TM) SE Runtime Environment (build 1.6.0_35-b10) Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01,混合模式)
  • 你的jre和jdk应该是同一个版本...
  • 如何解决编译和运行可以发出同一个版本?
  • 使用javac -version检查你的javac版本

标签: java


【解决方案1】:

您的程序是使用 JDK 1.7 编译的,但您实际上是使用早期版本的 Java 运行它的。

如果您在命令行中调用程序,请键入

java -version

查看您实际使用的 Java 版本。

或者,如果您使用的是 Eclipse 之类的编辑器,请检查您的 Java 设置。

另一种解决方案是使用

javac -source 1.6 -target 1.6 SimpleProgram.java

而不是

javac SimpleProgram.java

【讨论】:

  • 当我检查 java 的版本时,它告诉我:java version "1.6.0_35" Java(TM) SE Runtime Environment (build 1.6.0_35-b10) Java HotSpot(TM) 64-Bit服务器虚拟机(内部版本 20.10-b01,混合模式)
  • 另见stackoverflow.com/questions/11964010/…我刚才回答了一个类似的问题
  • 您可以删除 SimpleProgram.class 文件并使用 javac -source 1.6 -target 1.6 SimpleProgram.java 重试吗?它应该可以工作。
  • @su- OPs 类名是class ExampleProgram
  • 我明白了。这就是为什么。谢谢斯密特。 MMAB,正如 Smit 指出的那样,您正在编译 A 类并执行 B 类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多