[sane-devel] Java API (japi) Changes
Fri, 31 Oct 2003 10:58:31 +0100
sorry for the late response. I hoped someone else would answer :-)
On Fri, Oct 24, 2003 at 03:08:58PM -0500, Chris Chesney wrote:
> We've created a beta version of a web-based document management
> system that we hope to provide as an open source solution if the
> product matures.
Ah, sound nice.
> The solution is Java based and our intent was to
> use the JNI wrappers provided in the japi directory as means to
> control the backend scanning. We're learning as we go, but this is
> what we've done so far:
Thanks for the comments. Unfortunetely I don't know anything about
java and I'm not even able to run "make" in japi/. Well I am, but it
| javac Sane.java
| javah -jni Sane
| couldn't find class SaneOption
| couldn't find class SaneParameters
| make: *** [Sane.h] Fehler 1
After setting classpath to . :
| javac --classpath . Jscanimage.java
| Jscanimage.java:715: Warnung: Discouraged redundant use of public'
| modifier in declaration of abstract method setFromControl'.
| public void setFromControl(); // Ask SANE control for
| current value.
| Jscanimage.java:68: error: Class or interface
| com.sun.java.swing.event.ChangeListener' not found in import.
| import com.sun.java.swing.event.ChangeListener;
| Jscanimage.java:95: error: Type JButton' not found in declaration of
| field scanButton'.
| private JButton scanButton, previewButton;
| Jscanimage.java:0: confused by earlier errors, bailing out
Well, I'm using gcj et al, maybe that just doesn't work or I'm missing
> 1. Fixed a bug in Sane.c - Line 268 should be
> jclass stringClass = (*env)->FindClass(env, "java/lang/String");
> jclass stringClass = (*env)->FindClass(env, "String");
> 2. Added a package statement to the following 5 java classes. For
> our purposes, I called the package japi. It would be more
> appropriate to follow the typical package naming convention and would
> ask for a suggestion from you if you want this committed to the
> - SaneDevice.java
> - SaneOption.java
> - SaneParameters.java
> - SaneRange.java
> - Sane.java
No idea. What is the "typical package naming convention"? The pacakge
containing the java api is called "sane-backends". Maybe we should
split the japi stuff from sane-backends anyway.
> 3. By making these files part of a package, Sane.c requires an
> additional change to make the object references fully qualified.
Well, as I said I have no idea about the details of Java. So I ask
anyone with some experiences with java to just send a patch (and an
update of the documentation) to get it working :-)
> We haven't done anything with the Swing app that is included in the
> japi directory because we lack the experience in Swing and it isn't
> necessary for the project we're working on. If your interested in
> separating the wrapper code from the example java apps, we're almost
> there and would be happy to work with you to get it committed.
That sounds reasonable. Patches are welcome. But that's stuff for
after the release of sane-backends 1.0.13.
> if you were looking for more of a complete overhaul of the entire
> directory, we're probably not up for the challenge.
I'd appreciate if I could just run "make" and everything would work
out-of-the-box. Well, maybe with the appropriate java development kit
installed it would...