java命令行,包括.jar

时间:2012-05-15 23:26:12

标签: java command-line jar

我可以使用:

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。

2 个答案:

答案 0 :(得分:3)

将当前目录也放入类路径中:

java -cp .;mail.jar myFile

如果这不起作用,请发布myFile.java,以便我们可以看到可能发生的情况。例如,默认包中是myFile还是有package语句?

答案 1 :(得分:1)

您需要执行以下操作之一:

  • 首先打包jar(使用jar命令)并使用java -jar

  • 未指定类路径,只运行您的类文件(独立应用程序)

  • (如果jarfile是库),您需要在类路径中包含当前目录