2011-09-29 190 views
2

我想从我的终端运行一个Java程序。我有Mac OS X 10.7。如何从终端运行Java程序?

teamL javac -jar kxml2-2.3.0.jar XMLHandler.java ServiceEndpoint.java TeamL.java

这是我的Eclipse类文件结构:

eclipse class file structure

我无法找到这是为什么扔Unable to access jarfile kxml2-2.3.0.jar

+0

对我来说,它看起来像它没有找到jarfile – Neifen

+0

@Vinisa,接受答案并关闭这个问题 – Rakesh

回答

6

如果您正在引用任何外部库,那么您必须将它们添加到classpath。您可以通过这种方式在编译类时添加它。

转到src目录和:

javac -classpath ".:<path_to_jar_file>" teamL/*.java 

执行:

java -cp ".:<path_to_jar_file>" teamL.<class_name> 

如果您使用Eclipse,然后去<project_directory>/bin/在这里你可以找到已编译的类(所以你不要有以编译它们)并使用上述命令直接运行它们java命令

注意:由于您的类按teamL p ackage,你必须通过指定完全限定名称来运行包装外的类,如teamL.ServiceEndpoint

+0

你不能使用'-jar'用于编译,'-jar'用于直接执行jar应用程序。我不知道你的项目文件夹在哪里!我想你一定知道如何使用终端中的'cd'命令来改变当前目录。只需在终端中cd到'Documents/adsproject/ADS_Deliverable1/src /',然后选择'javac -classpath':“teamL/* .java' – Rakesh

+0

确定看截图,我看到你的项目目录是'home/Users/vsingh3/Documents/adsproject/ADS_Deliverable1'打开一个新的终端,然后键入'cd Documents/adsproject/ADS_Deliverable1/src'然后'javac -classpath“。:Documents/adsproject/ADS_Deliverable1/”teamL/* .java' – Rakesh

+0

谢谢,但我只是注意到你的意见,如果你是在日食上运行。所以,我想我不需要编译。另一件事是,因为我的jar文件没有找到,所以我复制粘贴它在每个文件夹。我在'ADS_Deliverable1-> src-> teamL'中拥有所有源文件和jar文件。我现在正在运行它像''teamL java -cp -jar kxml2-2.3.0.jar XMLHandler.java ServiceEndpoint.java TeamL.java'为什么在线程中抛出'Exception“main”java.lang。NoClassDefFoundError:kxml2-2/3/0/jar 引起:java.lang.ClassNotFoundException:kxml2-2.3.0.jar' – Ava

0

当您在命令行上执行程序时,是否将该jar添加到类路径中?例如

的java -classpath location_of_jar ...

0

javac是编译的,与其你应该使用命令的Java命令。

  • 首先设置CLASSPATH
  • 然后运行它像这样

java -classpath %classpathVariable% %YourClass% %arguments...

Running a Java Program from Command Prompt这可以给你一个更好的主意是Windows,但与此类似。