码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-07-01 22:05:21      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

成功的安装了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!");
    }

}

 

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

标签:

原文地址:http://www.cnblogs.com/subFire/p/4614577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!