2017-08-09 47 views
0

我已经在src下的包“first”下创建了eclipse中的类。 我会在日食中执行得很好。但是,当我试图从命令提示符下运行,它会说错误:无法找到或加载主类CreatingThread

"Error: Could not find or load main class CreatingThread".

但是,当我相同的类复制出到其他文件夹,并删除package first它会正常工作。
我已经设置环境变量如下:

path %JAVA_HOME%\lib;C:\Program Files\Java\jre1.8.0_144\bin 

classpath %JAVA_HOME%\lib\tools.jar;.; 

而这些类

package first; 

public class CreatingThread { 

    public static void main(String[] args) { 
     System.out.println(Thread.currentThread().getName()); 
     System.out.println(Thread.currentThread().getPriority()); 
     System.out.println(Thread.currentThread().getThreadGroup()); 
     for(int i=0;i<=25;i++) { 
      System.out.println(Thread.currentThread().getName()+" "+i); 
     } 

     MyThread myThread= new MyThread(); 
     myThread.setName("Child Thread"); 
     myThread.getThreadGroup(); 
     myThread.start(); 
     System.out.println("Done"); 
    } 
} 

二等

package first; 

public class MyThread extends Thread { 
    @Override 
    public void run() { 
     for(int i=0;i<=25;i++){ 
      System.out.println("child thread "+i); 
     } 
    } 
} 
+0

什么是通往CreatingThread.class的路径? – Ouney

+0

iin命令提示符我做了cd workspace \ corejava \ multithreadingrevision \ src \ first然后Javac * .java – spa

+0

您需要使用'java -cp执行。 first.CreatingThread' –

回答

-1

如果你的类Test.java例如是在src/test包比在类中的第一行将是那样的package test;。您将能够使用javac Test.java直接从test文件夹编译它。但是应该使用文件夹外部的整个包路径执行执行 - 您应该从src文件夹而不是test执行java Test

希望这会有所帮助。

+0

到达文件夹后java文件存在我执行javac * .java然后我打到java CreatingThread - 它失败了然后我尝试java first.CreatingThread - 它也失败了然后java src.first.CreatingThread - 它也是失败。但整个演出将运行良好,当我从类删除包关键字,然后把这些类在任何文件夹和编译,它将运行良好。 – spa

+0

从src文件夹运行“java first.CreateThread”,而不是“java src.first。 CreatingThread“ –

+0

Tnq @Mikita Berazouski – spa

相关问题