|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
C versus JAVA
Non, non devo scatenare alcuna guerra. Ho solo questo problema:
Fatto il seguente stupido programma Java: Codice:
import java.awt.event.*;
import javax.swing.*;
class CloseableFrame extends JFrame {
public CloseableFrame()
{
setTitle("Lanciato da C");
setSize(320, 200);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
public class myFrame {
public static void main(String[] args)
{
JFrame frame = new CloseableFrame();
frame.show();
}
}
Codice:
/* -*-linux-c-*- */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
/* Variabili globali. */
extern int errno;
pid_t pid;
/*
** Duplicazione dello spazio di indirizzi.
*/
void
spawn_process(const char * progname,
const char * args)
{
extern char ** environ;
pid = fork();
if (pid == 0) { // Processo child.
execle(progname, args, environ);
_exit(EXIT_FAILURE);
}
return;
} // spawn_process()
int
main(int argc, char ** argv)
{
int status = 0;
const char * progname = "/usr/share/j2sdk1.4.2/bin/java";
const char * args = "myFrame";
spawn_process(progname, args);
status = wait(&pid);
/*
** Controllo del segnale di uscita.
*/
if (WIFSIGNALED(status))
fprintf(stderr, "%d: Terminato dal segnale %d: %s\n",
(int)pid, WTERMSIG(status), strerror(errno));
return 0;
}
Allora ho fatto una prova (non convinto, visto che ho già passato l'environment), settando il path della libreria prima in /etc/ld.so.conf e poi esportando la variabile LD_LIBRARY_PATH. Risultato? Uguale a prima. Cosa potrebbe essere? Non mi è mai capitata una situazione del genere... Ultima modifica di mjordan : 28-08-2003 alle 23:14. |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
UP.
Possibile non ci sia nessuno che abbia mai creato processi UNIX? |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Up.
Il primo che risponde di usare JNI lo derapo |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
|
per quanto riguarda il codice non sono esperto java...
ma quando hai hetto che hai modificato ld.so.conf ho pensato--->non distruggermi hai ricreato la "calce" con ldconfig? se fosse la soluzione e' intervenuto dio. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Dalla versione 1.3.1 del jdk/jre è possibile far terminare il programma alla chiusura del frame usando setDefaultCloseOperation:
Codice:
wnd = new JFrame("bla bla bla ...");
wnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ciao |
|
|
|
|
|
#6 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
|
|
|
|
|
|
|
#7 | ||
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Quote:
Sta cosa la devo portare a fondo. |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:05.



















