我刚从http://java.sun.com/docs/books/tutorial/uiswing/examples/events/KeyEventDemoProject/src/events/KeyEventDemo.java复制了Key-Listener代码。我能够用“javac”命令对它进行比较。但是当我尝试执行已编译的代码(输入“java KeyEventDemo”)时,我看到了一条很大的消息:
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 :(得分:7)
类KeyEventDemo
位于包events
中要运行它,您必须位于包含该类的events
文件夹的 parent 文件夹中,并使用其完全限定名称运行它,包括包:
java events.KeyEventDemo
类路径必须包含文件夹(或JAR),它是表示包的文件夹层次结构的根;当前文件夹(我相信)会自动包含。
答案 1 :(得分:5)
此程序不在默认包中,而是在“事件”包中:使用包含“events”文件夹的目录中的java -cp . events.KeyEventDemo
:
+work +events -KeyEventDemo.class
答案 2 :(得分:4)
这是因为 KeyEvent 类在包事件中。
您必须从源代码中删除包事件; 行,或者使用以下代码编译它:
javac -d . KeyEventDemo.java
答案 3 :(得分:0)
也许您使用不同的java版本编译和运行。 当您尝试在eclipse中执行示例时,这很常见。