我已經創建了下面的java類。這個類使用twitter4java api進行java-twitter通信。爲什麼我不能用shell_exec運行這個jar?
import twitter4j.*;
import twitter4j.auth.AccessToken;
import java.util.List;
public class SearchTweets {
public static String API_Key = new String("xxxxxxxxxxxxxxxxx");
public static String API_Secret = new String("xxxxxxxxxxxxxxxxx");
public static String Access_Token = new String("xxxxxxxxxxxxxxxxx");
public static String Access_Token_Secret = new String("xxxxxxxxxxxxxxxxx");
public static void main(String[] args) {
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(API_Key, API_Secret);
AccessToken accessToken = new AccessToken(Access_Token, Access_Token_Secret);
twitter.setOAuthAccessToken(accessToken);
try {
Query query = new Query("paok");
QueryResult result;
do {
result = twitter.search(query);
List<Status> tweets = result.getTweets();
for (int i=0 ; i < tweets.size() ; i++) {
Status s = tweets.get(i);
if (s.getPlace() != null) {
System.out.println("@" + s.getUser().getScreenName() + " - " + s.getPlace().getName());
}
}
} while ((query = result.nextQuery()) != null);
System.exit(0);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to search tweets: " + te.getMessage());
System.exit(-1);
}
}
}
我已經在eclipse中創建它。現在我想用php在一個網站上運行它。我使用shell_exec。首先,我創建一個簡單的Java類進行測試,所有運行正常。
當我去運行我的SearchTweets類,我不能。我從eclipse的jar中導出項目。但是當跑跑時,我把它從終端
[email protected]:/opt/lampp/htdocs/tweet$ java -jar ilias.jar Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2625) at java.lang.Class.getMethod0(Class.java:2866) at java.lang.Class.getMethod(Class.java:1676) at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) Caused by: java.lang.ClassNotFoundException: twitter4j.TwitterException at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 6 more
任何想法出了什麼問題?
首先我感謝你的回答。你能告訴具體的命令行順序來運行我的SearchTweets嗎?我需要很多twitter4j罐子。我必須從終端重新編譯還是不重編譯? –
你不需要重新編譯 - 如果你有很多'jar'文件,你可以用'java -cp ilias.jar:lib/*。jar SearchTweets.Main'將它們全部包含進來,前提是你的所有jar文件都在lib /文件夾中在你的項目結構下 –
如何查看我是否已將所有JAR文件包含到清單中?明確的是什麼? –