Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法从命令行使用Twitter4j运行应用程序_Java_Command Line_Classpath_Twitter4j - Fatal编程技术网

Java 无法从命令行使用Twitter4j运行应用程序

Java 无法从命令行使用Twitter4j运行应用程序,java,command-line,classpath,twitter4j,Java,Command Line,Classpath,Twitter4j,我在我的类路径中包含了Twitter4j.jar文件,如下所示: <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path=""/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.de

我在我的类路径中包含了Twitter4j.jar文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path=""/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
    <classpathentry kind="lib" path="C:/twitter4j-3.0.5/lib/twitter4j-core-3.0.5.jar"/>
    <classpathentry kind="lib" path="C:/twitter4j-3.0.5/lib/twitter4j-stream-3.0.5.jar"/>
    <classpathentry kind="output" path=""/>
</classpath>
.;C:/twitter4j-3.0.5/lib/twitter4j-core-3.0.5.jar;C:/twitter4j-3.0.5/lib/twitter4j-stream-3.0.5.jar

要从命令行运行使用twitter4j的应用程序,我还需要做些什么吗?

您必须在命令行shell类路径中添加
twitter4j-core-3.0.5.jar
twitter4j-stream-3.0.5.jar

编辑

在窗户里

set CLASSPATH=%CLASSPATH%;<Path to>/twitter4j-stream-3.0.5.jar;<Path to>/twitter4j-core-3.0.5.jar;<Path to Directory containing Class files or Start of Package>
我在这里找到了答案:

具体而言,该部分说明:

默认类路径是当前目录。设置类路径 变量或使用-classpath命令行选项覆盖 默认设置,因此如果要在搜索中包含当前目录 路径,则必须在新设置中包含“.”

似乎我在设置我的
CLASSPATH
Windows环境变量时忽略了这一点。我将
添加到我的类路径中,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path=""/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
    <classpathentry kind="lib" path="C:/twitter4j-3.0.5/lib/twitter4j-core-3.0.5.jar"/>
    <classpathentry kind="lib" path="C:/twitter4j-3.0.5/lib/twitter4j-stream-3.0.5.jar"/>
    <classpathentry kind="output" path=""/>
</classpath>
.;C:/twitter4j-3.0.5/lib/twitter4j-core-3.0.5.jar;C:/twitter4j-3.0.5/lib/twitter4j-stream-3.0.5.jar
使用通配符进一步简化,它将变成:

.;C:/twitter4j-3.0.5/lib/*

这允许我正确使用
JavaMyTwitterApp
语法。它查找我在项目中使用的相关
.jar
文件,
允许我使用当前目录作为所有其他Java应用程序的类路径,因此不会破坏任何兼容性。

设置类路径似乎解决了查找jar文件的问题,但是现在我得到了一个
错误:在试图从命令行运行主类MyTwitterApp时,无法找到或加载它。如果我删除类路径,我就可以从命令行运行其他项目。一旦添加了类路径,我就失去了这个功能。你的MyTwitterApp.class是在包中还是没有包?它不在包中。MyTwitterApp.java在默认包中。然后需要添加指向MyTwitterApp.class文件所在目录的路径。请看我在ClassPath中的编辑。这是可行的,但并不理想。我必须以这种方式将每个路径添加到我的每个Java应用程序中。有更好的解决办法吗?
.;C:/twitter4j-3.0.5/lib/*