GUI w javie kod w C jak połączyć?

0

Witam,

Program w c jest już gotowy i teraz jakos sensownie wywoływać w javie. Przekazywać argumenty, pobierać wyniki i przekazywać do GUI. Znalazłem funkcję exec, ale netBeans ciagle wywala błedy. Ponieważ jestem dośc zielony w temacie byłbym wdzięczny za pomoc, bo googlowanie mi dziś nie idzie.

0

Ok, tak więc dla treningu wklikałem krótki kod który powinien sie skompilować a wyskakuje cos takiego:

Exception in thread "main" java.lang.NoClassDefFoundError: Hello_world1
at gnu.java.lang.MainThread.run(libgcj.so.90)
Caused by: java.lang.ClassNotFoundException: Hello_world1 not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:/home/garfield/workspace/Hello/], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
at java.net.URLClassLoader.findClass(libgcj.so.90)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at java.lang.ClassLoader.loadClass(libgcj.so.90)
at gnu.java.lang.MainThread.run(libgcj.so.90)

Kod:

try {
// Execute a command without arguments
String command = "ls";
Process child = Runtime.getRuntime().exec(command);

// Execute a command with an argument
command = "ls /tmp";
child = Runtime.getRuntime().exec(command);

} catch (IOException e) {
}

0

Wiesz... po pierwsze wklej caly plik z klasa, i napisz, jak nazywa sie ten plik. Poza tym napisz, jak to kompilujesz. I czemu nie uzywasz kompilatora Sun'owskiego ?

0

Teraz juz używam, kompiluję w netbeansie. Mój błąd.

Kod:

package wywolania;
import java.io.*;

public class Main {

public static void main(String[] args) {

    try {

    String command = "ls -l";
    Process child = Runtime.getRuntime().exec(command);

    command = "ls /tmp";
    child = Runtime.getRuntime().exec(command);
    } catch (IOException e) {
}
}

}

I teraz taki problem, kod sie kompiluje bez błedów, ale nie ma zadnego efektu działania programu.

0

Dobra, juz sobie poradziłem i złapałem trop. Dzięki za zainteresowanie.

0

Jeżeli rzeczywiście chcesz mieć część aplikacji w C, a resztę w Javie, to lepiej zastosować JNI, niż za każdym razem tworzyć nowy proces, aby wywołać kod w C.

http://en.wikipedia.org/wiki/Java_Native_Interface

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0