Я создал класс Java ниже. Этот класс использует twitter4java api для связи java-twitter.
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);
}
}
}
Я создал его в затмении. Теперь я хочу запустить его на веб-сайте с php. Я использую shell_exec. Сначала я создаю простой Java-класс для тестирования и все работает нормально.
После того, как я пойду запустить мой класс SearchTweets, и я не могу. Я экспортирую свой проект в банке из затмения. Но когда запускаю его, я беру это из терминала
itsoum @ itsoum-Inspiron-3542: / opt / lampp / htdocs / tweet $ java -jar
ilias.jar Исключение в потоке «main» java.lang.NoClassDefFoundError:
twitter4j / TwitterException в
java.lang.Class.getDeclaredMethods0 (собственный метод) в
java.lang.Class.privateGetDeclaredMethods (Class.java:2625) в
java.lang.Class.getMethod0 (Class.java:2866) в
java.lang.Class.getMethod (Class.java:1676) в
sun.launcher.LauncherHelper.getMainMethod (LauncherHelper.java:494) в
sun.launcher.LauncherHelper.checkAndLoadMain (LauncherHelper.java:486)
Вызывается: java.lang.ClassNotFoundException:
twitter4j.TwitterException в
java.net.URLClassLoader $ 1.run (URLClassLoader.java:366) в
java.net.URLClassLoader $ 1.run (URLClassLoader.java:355) в
java.security.AccessController.doPrivileged (собственный метод) в
java.net.URLClassLoader.findClass (URLClassLoader.java:354) в
java.lang.ClassLoader.loadClass (ClassLoader.java:425) в
sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:308) в
java.lang.ClassLoader.loadClass (ClassLoader.java:358) … еще 6
Есть идеи, что пойдет не так?
Ваша программа ссылается на внешнюю библиотеку (twitter4j), вам нужно будет ссылаться на эту внешнюю библиотеку, чтобы запустить вашу программу
У вас есть два варианта:
java -cp ilias.jar:<path to twitter4j.jar> SearchTweets.Main
Других решений пока нет …