Я пытаюсь скомпилировать и запустить код всплывающей подсказки из этого урока. Я получил QtJambi из моего менеджера пакетов (пакет qtjambi-beta
от AUR), который установил его в каталог /opt/qtjambi-beta/
. В частности, файл qtjambi-4.7.0.jar
находится по адресу /opt/qtjambi-beta/qtjambi-linux64-community-4.7.0/qtjambi-4.7.0.jar
.
Теперь я создал папку под названием qtpractice
и разместил там пример под названием JambiApp.java
. Код, который я вложил в него, был точно следующим образом (следуя примеру, который я связал):
package qtpractice;
import com.trolltech.qt.gui.QApplication;
import com.trolltech.qt.gui.QWidget;
public class JambiApp extends QWidget {
public JambiApp() {
setWindowTitle("Tooltip");
setToolTip("This is QWidget");
resize(250, 150);
move(300, 300);
show();
}
public static void main(String args[]){
QApplication.initialize(args);
new JambiApp();
QApplication.exec();
}
}
Я скомпилировал его с javac qtpractice/*.java -cp/opt/qtjambi-beta/qtjambi-linux64-community-4.7.0/qtjambi-4.7.0.jar
, который отлично работал. Затем я попытался выполнить его с помощью java qtpractice.JambiApp
, и я получил следующую ошибку:
Error: Could not find or load main class qtpractice.JambiApp
EDIT: Исходя из некоторых рекомендаций из комментариев, я попробовал эту команду вместо: java -cp/opt/qtjambi-beta/qtjambi-linux64-community-4.7.0/qtjambi-4.7.0.jar qtpractice.JambiApp
. Когда я это сделал, я снова получил следующую ошибку:
Error: Could not find or load main class qtpractice.JambiApp
Что я упустил? Из того, что я могу сказать, я сделал все необходимое, чтобы выполнить его.
Вы должны включить все банки Qt Jambi в classpath.
Это можно сделать на CLI с командой, аналогичной
java -cp /opt/qtjambi-beta/qtjambi-linux64-community-4.7.0/qtjambi-4.7.0.jar:/opt/qtjambi-beta/qtjambi-linux64-community-4.7.0/qtjambi-linux64-gcc-4.7.0.jar:. qtpractice.JambiApp
При компиляции родной банке не нужно присутствовать, так как собственные библиотеки предназначены только для классов Jambi для использования Qt.
-cp
арг наjava
команду тоже. Это обычная практика Java.