I have an application which is used strictly by engineers within my company. The app is written in C, is fairly complex (judged by # of lines of code, not code complexity), and currently runs only on SunOS in a command line mode. The goal is to add a GUI interface and also support the app in Linux (in addition to SunOS).
With a minimal amount of research I chose Java using NetBeans IDE, thinking this would be the best platform independent tool. The Java implementation went fairly well and I like the IDE, but now I'm having second thoughts about Java. There's no way I'm rewriting the C code, so any GUI code needs to smoothly interface with the C code. The biggest problem is that I simply cannot find a clean way of using Java to launch the C app and pass data back and forth. Runtime.exec is basically a dumb interface and despite one week+ of work I could not get JNI to work. I haven't found any other method. The 2nd problem is that this is not a web app; it must run locally on each workstation. I'm finding that I have to write the Java code to the lowest common demoninator (old rev Java) to get it to work for all users, or force some users to upgrade their Java installs.
So now I'm wondering if I should have just used Motif to begin with, or is there something about Java I've missed. Motif seemed much more difficult to work with, but it has the huge advantage of being integrated with the C code and compiled together (I use gcc).
I'm looking for compelling arguments to these questions:
1. Which is the best GUI for my needs? Priorities are 1) integration with existing C code, 2) ease of development, 3) tools cost.
2. Will it work as well in Linux?
3. (there is a remote chance of adding Windows support, but this is not a factor).