我可以使用:
C:\Program Files (x86)\Java>javac -classpath mail.jar myFile.java
编译,但是当我尝试运行它时:
C:\Program Files (x86)\Java>java -cp mail.jar myFile
Exception in thread "main" java.lang.NoClassDefFoundError: myFile
Caused by: java.lang.ClassNotFoundException: myFile
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: myFile. Program will exit.
我尝试使用“。”使用各种组合。和“-classpath”表示类路径,因为其他帖子已经消化但无法弄明白。我编译并成功运行了一个基本的helloworld.java在同一个文件夹中。以管理员身份运行使用java runtime 1.6。
答案 0 :(得分:3)
将当前目录也放入类路径中:
java -cp .;mail.jar myFile
如果这不起作用,请发布myFile.java
,以便我们可以看到可能发生的情况。例如,默认包中是myFile
还是有package
语句?
答案 1 :(得分:1)
您需要执行以下操作之一:
首先打包jar(使用jar
命令)并使用java -jar
未指定类路径,只运行您的类文件(独立应用程序)
(如果jarfile是库),您需要在类路径中包含当前目录