Невозможно загрузить основной класс при компиляции и запуске файла Java с использованием C ++ - PullRequest
0 голосов
/ 27 марта 2019

Я пытался скомпилировать и выполнить файл Java из C ++, но в настоящее время я получаю эту ошибку.Java-файл работает нормально, когда выполняется отдельно в Java.

Это полученный код ошибки:

Error: Could not find or load main class TwitterDataCrawler
Caused by: java.lang.ClassNotFoundException: TwitterDataCrawler

В моем файле C ++:

(TwitterDataCrawler.java - это файл, который я хочу запустить \ twitter4j-core-4.0.7.jar - это Twitter API, который требуется для запуска)

int main()
{
    system("javac -cp twitter4j-core-4.0.7.jar TwitterDataCrawler.java");
    system("java -cp TwitterDataCrawler.java TwitterDataCrawler arg1");
    return 0;
}

Структура моего java-файла выглядит примерно так:

public class TwitterDataCrawler {
    public TwitterDataCrawler() {
    }   
    public static void viewAccident(int x) throws TwitterException, IOException{
    }
    public static void main(String[] args) throws TwitterException, IOException {
            viewAccident(5000);
    }
}

Я должен вызвать публичную статическуюvoid основная функция из класса TwitterDataCrawler.Я предполагаю, что поскольку класс содержит основную функцию, нацеливание на класс с аргументом должно работать.Может ли кто-нибудь указать мне правильное направление?

1 Ответ

1 голос
/ 28 марта 2019

Решено!

system(javac -cp twitter4j-core-4.0.7.jar TwitterDataCrawler.java);
system(java -cp .;twitter4j-core-4.0.7.jar TwitterDataCrawler);

Поскольку класс, созданный с использованием javac, зависит от jar API (оба находятся в одном каталоге), для выполнения TwitterDataCrawler включен ".; Twitter4j-core-4.0.7.jar".

...