2010-01-26 52 views
5

我刚刚从http://java.sun.com/docs/books/tutorial/uiswing/examples/events/KeyEventDemoProject/src/events/KeyEventDemo.java复制了Key-Listener代码。我可以用“javac”命令对其进行压缩。但是,当我尝试执行编译后的代码(输入“java的KeyEventDemo”),我到底有大的消息,其中我看到:为什么Java找不到主类?

Could not find the main class: KeyEventDemo. Program will exit. 

昨天我在Windows Vista中有一个similar problem(现在我在Ubuntu )。在Windows中,我可以通过键入“java -cp。ProgramName”或者向环境变量“classpath”添加新值(“。”和“..”)来解决问题。

在Ubuntu上,第一个解决方案不起作用。我的意思是,当我输入“java -cp。KeyEventDemo”时,我仍然有问题。而且,在Ubuntu上我只能输入“java ProgramName”就能运行其他程序。

那么,有谁能告诉我这个KeyEventDemo有什么特别之处吗?为什么它不会工作以及如何解决?

+0

您只有一个文件,为什么不现在删除包名?当我删除它时它对我很好。 – 2010-01-26 09:52:36

回答

4

这是因为KeyEvent类是在包事件

您必须删除程序包事件;从源代码线,或编译:

javac -d . KeyEventDemo.java 
5

这个方案是不是在默认的包,但包“事件”:用java -cp . events.KeyEventDemo从包含的文件夹目录“事件”:

 
    +work 
    +events 
    -KeyEventDemo.class 
7

KeyEventDemo在包events运行它,你必须在包含类events文件夹的文件夹,并使用其全名运行它,包括包装:

java events.KeyEventDemo 

类路径必须包含文件夹(或JAR),它是表示包的文件夹层次结构的根;目前的文件夹是(我相信)自动包含。

0

也许你编译和diferent的Java版本上运行。 当您尝试在eclipse上执行示例时,这很常见。

+3

嗨欢迎来到stackoverflow。这个问题在3年前已经得到解答,问题已经确定。下一次请先阅读现有答案,并检查是否已被接受,然后再对旧问题提供答案。 – Rutix 2012-12-14 20:18:49