cmd上执行java命令 - Could not find or load main class

成功的安装了JDK和Eclipse后,在开发测试Java工程中,很少会遇到开发环境问题。

这都归功于Eclise通过工程(project)和包(package)把这些管理好。

但偶尔在命令行下编译和运行Java文件时,还会遇到如下错误:
(以下示例都是在Win7上进行)
D:\temp> java Tmp

有时java源程序中package设置不当也会导致上述错误。
1. 在java源文件开头没有包声明语句 package; 
D:\temp> javac Tmp.java
D:\temp> java Tmp

hello world!

2. 在java源文件开头有包声明语句 package com.hdz.test; 
D:\temp> javac Tmp1.java

D:\jtest> java Tmp1

Error: Could not find or load main class Tmp1

错误原因:
编译含有包声明语句的java源程序文件的格式是:
    javac -d your_path your_class.java
此命令能在 your_path/your_package/ 下生成 your_class.class。

上面的命令中没有-d选项,javac会在当前目录下生成J_Hello1.class(没有报错)。
但是执行java命令,会因为找不到class而出错。

解决方法:
用 javac -d . Tmp1.java 编译,将直接生成./your_package_path/Tmp1.class。 
D:\temp> javac -d . Tmp1.java

D:\temp> java com.hdz.test.Tmp1

hello world!

注:直接进入包所在路径再执行是无效的:

D:\temp> cd /d D:\temp\com\hdz\test

D:\temp\com\hdz\test> java Tmp1

Error: Could not find or load main class Tmp1

以下是实例程序:

// D:\temp\Tmp.java

public class Tmp {
    public static void main(String[] args) {

        System.out.println("hello world!");
    }

}
// D:\temp\Tmp1.java

package com.hdz.test;

public class Tmp1 {
    public static void main(String[] args) {

        System.out.println("hello world!");
    }

}
时间: 2024-07-31 14:26:57

cmd上执行java命令 - Could not find or load main class的相关文章

PHP在linux上执行外部命令

PHP在linux上执行外部命令 一.PHP中调用外部命令介绍二.关于安全问题三.关于超时问题四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍在PHP中调用外部命令,可以用,1>调用专门函数.2>反引号.3>popen()函数打开进程,三种方法来实现: 方法一:用PHP提供的专门函数(四个):PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()1)exec()原型: string exe

穿越之旅之--android中如何执行java命令

android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候 写得那个hello world,这次要在android上运行. 用记事本新建hello.java文件,编写如下代码: public static class hel

android中如何执行java命令

android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候写得那个hello world,这次要在android上运行. 用记事本新建hello.java文件,编写如下代码: public static class hell

记一次解决cmd中执行java提示"找不到或无法加载主类"的问题

今天遇到一个问题:在cmd命令行中,用javac编译java文件可以成功,但是用java执行却提示"找不到或无法加载主类".现将该问题的原因以及解决办法记录一下. 先理解一下系统变量path和classpath的作用. path:可执行命令的搜索路径,在该路径下搜索可以运行的程序或批处理文件. 命令行中输入一个命令,则会在path配置的目录中查找该命令,如果存在则调用该程序运行,如果不存在则提示" 'XXX' 不是内部或外部命令,也不是可运行的程序或批处理文件."

在cmd上执行关于java的反编译

反编译是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析.研究”工作,以推导出他人的软件产品所使用的思路.原理.结构.算法.处理过程.运行方法等设计要素,某些特定情况下可能推导出源代码.反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中.例如执行如下代码的反编译 1 public class stringbuffer { 2 public static void main(String[] args){ 3 StringBuffer s = new StringBuffer(

Linux培训教程 浅谈:PHP在linux上执行外部命令(整理)

一.PHP中调用外部命令介绍 二.关于安全问题 三.关于超时问题 四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,可以用,1>调用专门函数.2>反引号.3>popen()函数打开进程,三种方法来实现: 方法一:用PHP提供的专门函数(四个): PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(),shell_exec() 1)exec() 原型: string exec ( string$

php -- PHP在linux上执行外部命令,system(),exec(),shell_exec()

目录:一.PHP中调用外部命令介绍二.关于安全问题三.关于超时问题四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,有三种方法: 1. 调用专门函数 2. 反引号 3. popen()函数打开进程 方法一:调用PHP提供的专门函数(四个): PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec() 1)exec() 原型: string exec ( string $comm

在多个linux服务器上执行一个命令

把服务器的ip地址写到list.txt中 192.168.37.3 192.168.37.4 192.168.37.6 然后运行 for i in `cat list.txt`;do ssh [email protected]$i 'bash commad';done 把user替换成实际登录的用户,'bash command' 替换成实际要执行的命令

【JVM】【linux】linux上执行jmap命令查看JVM内存使用情况,报错:sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "gHotSpotVMTypes" in any of the known library name

运行命令: jmap -heap 6709 报错如下: Attaching to process ID 6709, please wait... sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "gHotSpotVMTypes" in any of the known library names (libjvm.so, libjvm_g.so, gamma_g) at sun.jvm.hotsp