#java #maven #netbeans #pom.xml #gnome
#java #maven #netbeans #pom.xml #gnome
Вопрос:
Я использую Netbeans 12 IDE в Ubuntu 18.04 LTS и установил java-gnome с помощью команды :
sudo apt-get install libjava-gnome-java
Я создал небольшой проект для тестирования уведомления с помощью основного кода класса следующим образом :
package com.mycompany.notifytest;
import org.gnome.gtk.Gtk;
import org.gnome.notify.Notify;
import org.gnome.notify.Notification;
/**
*
* @author nbs
*/
public class Main {
public static void main(String[] args){
Gtk.init(args);
Notify.init("NotifyTest");
Notification n = new Notification("Notify Test", "Test Passed !", "");
n.show();
}
}
Теперь всякий раз, когда я запускаю проект с помощью F6, отображается уведомление, и вывод:
cd /home/nbs/NetBeansProjects/NotifyTest; JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 /snap/netbeans/41/netbeans/java/maven/bin/mvn "-Dexec.args=-classpath %classpath com.mycompany.notifytest.Main" -Dexec.executable=/usr/lib/jvm/java-11-openjdk-amd64/bin/java org.codehaus.mojo:exec-maven-plugin:3.0.0:exec
Running NetBeans Compile On Save execution. Phase execution is skipped and output directories of dependency projects (with Compile on Save turned on) will be used instead of their jar artifacts.
Scanning for projects...
----------------------< com.mycompany:NotifyTest >----------------------
Building NotifyTest 1.0-SNAPSHOT
--------------------------------[ jar ]---------------------------------
Downloading from central: https://repo.maven.apache.org/maven2/org/com/java.gnome/1.0/java.gnome-1.0.pom
The POM for org.com:java.gnome:jar:1.0 is missing, no dependency information available
--- exec-maven-plugin:3.0.0:exec (default-cli) @ NotifyTest ---
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 10.252 s
Finished at: 2021-03-04T13:37:04 05:30
------------------------------------------------------------------------
Но после создания проекта, когда я пытаюсь запустить файл .jar из терминала, проблема заключается в :
Exception in thread "main" java.lang.NoClassDefFoundError: org/gnome/gtk/Gtk
at com.mycompany.notifytest.Main.main(Main.java:17)
Caused by: java.lang.ClassNotFoundException: org.gnome.gtk.Gtk
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more
Комментарии:
1. Ваш результирующий jar не содержит необходимых классов / jar
2. Как я могу преодолеть эту проблему? Я думаю, что зависимость java-gnome отсутствует в jar, поскольку, если я добавлю в код состояние печати, оно будет выполнено.
3. К сожалению, я ничего не знаю о том, как вы создаете свое приложение, и я не знаю, как выглядит ваш pom-файл? Что вы пробовали до сих пор? Как выглядит ваш pom-файл? Какую версию Java / версию Maven и т. Д. Вы используете?