【问题标题】:I'm not able to run a class file on the command line even though there are no problems with Java installation and path variables settings即使 Java 安装和路径变量设置没有问题,我也无法在命令行上运行类文件
【发布时间】:2016-05-12 19:03:37
【问题描述】:

我使用 Eclipse 练习 Java 编程已经有一段时间了。到目前为止还没有遇到任何问题,但是今天我只想在命令行上编译和运行我的代码(我使用的是 Windows 操作系统)并且它不起作用。

假设编译后的文件名为“Test.class”。编译后,当我在命令行中输入 'java Test' 时出现错误消息,“无法找到或加载主类测试”

但我已经设置了所有系统变量,例如 %JAVA_HOME%、Path、CLASSPATH,并且在 Eclipse 上运行该代码没有问题。

下面是我在命令行设置信息的截图。 (请忽略韩文)

系统变量

当我在命令行输入“java”时

当我在命令行输入“javac”时

检查 java 版本

没问题,对吧?但是错误发生了,当我将Test.java编译成Test.class后输入'java Test'运行这段代码(你看不懂的字母是韩文,忽略它,它说“找不到或加载主类测试”)

请帮帮我!

------------------下面是附加截图---------------------- - ... 你能看到吗你能明白吗?我编译了TestClass.java并将其转换为TestClass.class,但是当我执行“java TestClass”时,出现了错误。

下面是我的代码.....我对代码几乎什么都没做,只是想测试命令行方法......

TestClass.java

package test;

public class TestClass {

    public static void main(String[] args) {
        System.out.println("SOS");
    }

}

【问题讨论】:

  • javac/ java 操作只有在您的Test 类具有默认包时才会成功。
  • 感谢您的回复!但是 javac / java 操作无需任何类即可工作。如果我的班级有默认包,你是什么意思?
  • 意思是,你没有package 声明。基本上,您应该向我们展示您的代码...
  • @TITTO 你的Test.java 很可能有一个包装声明(对吧?)。您的编译很好并生成了Test.class(验证这一点)。但是你不能像现在这样运行它,因为java Test 期望在默认包中找到Test 类。
  • @JonSkeet 我刚刚更新了我的问题,包括我的代码和另一个屏幕截图..

标签: java command-line classpath


【解决方案1】:

问题在于您的 CLASSPATH 环境变量。它存在,但不包括当前目录。

除非您出于某种原因真的需要 CLASSPATH 环境变量,否则我会删除它 - 然后它将默认为当前目录。所有框架类都已在引导类路径中 - 您无需担心这些。

如果由于某种原因您无法更改环境变量,只需在命令行中指定类路径即可:

java -cp . TestClass

【讨论】:

  • 即使我删除了 CLASSPATH 变量并在命令行上指定了类路径,它仍然没有工作。我觉得我的电脑有问题。非常感谢你帮助我!
  • @TITTO:如果您更改了环境变量,则需要重新启动命令提示符才能生效。但如果java -cp . TestClass 不起作用,那就另当别论了……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多