2012-05-15 70 views
0

我可以使用:的java命令行包括的.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运行时1.6。

回答

3

把当前目录到类路径中:

java -cp .;mail.jar myFile 

如果不工作,张贴myFile.java所以我们可以看到什么可能什么。例如,默认包中是myFile还是有package声明?

+1

谢谢!!我以为我曾尝试过,但我猜不是。 – woodlumhoodlum

+0

如果这解决了问题,请记住接受该答案。祝你好运! – QuantumMechanic

+1

我必须等10分钟b4我可以。 5更多... – woodlumhoodlum

1

你需要做以下之一:

  • 第一包的jar(使用jar命令),并使用java -jar

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

  • (如果jar文件是一个库),你需要在你的classpath当前目录

+0

他必须指定一个类路径,因为(显然)他的应用依赖于'mail.jar'。 – QuantumMechanic

+0

啊。说实话,我习惯于将自己的文件粘贴到其他jar文件(我的世界)中:P – Riking

+0

最终我将使用“exej”使它成为一个.exe。它的过期帐户通知程序 – woodlumhoodlum