繁体   English   中英

从命令行运行Java代码

[英]Java running code from command line

我在Mac OS X 10.9.2(Mavericks)上。 我有使用外部Java库(twitter4j)的代码。 当我通过NetBeans运行它时,它运行良好。 但是,尝试在终端中运行几乎相同的代码会给我错误。

我的目录结构很简单-我有一个带有.java文件的'src'文件夹和一个我使用的外部.jar文件的'lib'文件夹。

从src文件夹中,我将javac -cp "../lib/*" MyProgram.java称为javac -cp "../lib/*" MyProgram.java ,它似乎可以正常工作。 现在,如果我调用java MyProgram ,则会出现异常:

Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/StreamListener
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2693)
at java.lang.Class.privateGetMethodRecursive(Class.java:3040)
at java.lang.Class.getMethod0(Class.java:3010)
at java.lang.Class.getMethod(Class.java:1776)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: twitter4j.StreamListener
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

似乎无法正确导入外部twitter4j库。 我在这里想念什么?

这些是我在代码中的导入语句: import twitter4j.*; import twitter4j.conf.ConfigurationBuilder;

更新:使用下面的建议,我还尝试通过java -cp "../lib/*" MyProgram运行它,它给出:“找不到或加载主类MyProgram”

在运行程序以及进行编译时,您需要指定类路径:

例如

java -cp "../lib/*" MyProgram

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM