Java libgrowl Revisit
This time I am going to write my own Java program with libgrowl GrowConnect class, just take it as an exercise.
First you need to get a copy of the libgrowl or you can compile on your own. There are at least 2 sources for the program:
classic https://github.com/feilimb/libgrowl
maven https://github.com/sbower/libgrowl
Write a GrowlNotify program to accept message, tittle, host, application name, notification name as parameters. Minimal to provide message as parameters, others are optional.
eg. $ GrowlNotify 'Hello, world.'
First you need to get a copy of the libgrowl or you can compile on your own. There are at least 2 sources for the program:
classic https://github.com/feilimb/libgrowl
maven https://github.com/sbower/libgrowl
Write a GrowlNotify program to accept message, tittle, host, application name, notification name as parameters. Minimal to provide message as parameters, others are optional.
eg. $ GrowlNotify 'Hello, world.'
import net.sf.libgrowl.GrowlConnector;
import net.sf.libgrowl.Application;
import net.sf.libgrowl.Notification;
import net.sf.libgrowl.NotificationType;
class GrowlNotify {
public static void main(String[] args) {
if (args.length<1) {
System.out.println("Usage: TestGrowlNotify <message> [<title> <host> <application> <notification>]");
System.out.println("eg. TestGrowlNotify 'Hello, world.'");
System.exit(0);
}
int counter= 0;
int i;
String message="", title="", host= "localhost", appName="libgrowl", notificationName="libgrowl";
GrowlConnector growl;
Application application;
Notification notification;
NotificationType notificationType;
NotificationType[] notificationTypes;
for (i=0; i<args.length; i++) {
switch(counter++) {
case 0:
message= args[0]; break;
case 1:
title= args[1]; break;
case 2:
host= args[2]; break;
case 3:
appName= args[3]; break;
case 4:
notificationName= args[4]; break;
default:
break;
}
}
application = new Application(appName);
notificationType = new NotificationType(notificationName);
notificationTypes = new NotificationType[] { notificationType };
growl= new GrowlConnector(host);
growl.register(application, notificationTypes);
notification = new Notification(application,
notificationType, title, message);
growl.notify(notification);
}
}
$ java -cp libgrowl.jar GrowlNotify.java
⇒ GrowlNotify.class
$ java -cp libgrowl.jar GrowlNotify 'Hello, world.'
If Growl software is installed and running, it shows "Hello, world.".
Maven
I am using maven 3.6. Add dependency in pom.xml file:
<dependencies>
...
<dependency>
<groupId>net.sf</groupId>
<artifactId>libgrowl</artifactId>
<version>0.5</version>
</dependency>
<dependencies>
Copy libgrowl.jar to ~/.m2/repository/net/sf/libgrowl/0.5/.
$ cp libgrowl.jar ~/.m2/repository/net/sf/libgrowl/0.5/.
$ mvn compile
$ mvn exec:java -Dexec.mainClass="com.example.GrowlNotify" -Dexec.args="'Hello, world.'"



RSS