[Java web start]Programme qui ne donne rien.

maxlegrand
[Java web start]Programme qui ne donne rien.

Bonjour,

j'ai écrit un programme qui permet d'afficher une fenetre dans laquelle, il y a une JTable
et un menu qui permet d'afficher un graphe lorsque l'on fait un choix.
La fenetre est de ce type :
http://cjoint.com/data/gBpRqCTQrd.htm

Comme le programme fonctionnait, je souhaitais déployer cette ap^plication via java web part
mais le programme ne fait rien.
Il y a bien la fenetre et le menu mais la JTable n'apparait pas et il y a pas de graphes qui
apparaissent lorsque je clique sur un des choix du menu.
Ce que j'obtiens :
http://cjoint.com/data/gBpRN1NLtm.htm

Pour obtenir les graphes, j'ai utilisé JFreeChart et awt/swing pour l'interface graphique.

Le fichier test.jnlp que j'ai écrit est le suivant :

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://localhost/Local-Site-A/" href="test.jnlp">

	<information>
		<title>Mon Logiciel par JNLP</title>
		<vendor>Pierre Sylvestre</vendor>
		
	</information>

	<resources>
		<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
		<jar href="http://localhost/Local-Site-A/test.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jfreechart-1.0.5.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/junit.jar"/">
		<jar href="http://localhost/Local-Site-A/lib/itext-2.0.1.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jfreechart-1.0.5.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jfreechart-1.0.5-experimental.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/servlet.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jcommon-1.0.9.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jfreechart-1.0.5-swt.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/swtgraphics2d.jar"/>
	</resources>

	<application-desc main-class="MonMenu" />

</jnlp>

Est-ce que quelqu'un aurait une idée de la raison pour laquelle, la fenetre s'affiche mais
ne fait rien ?

Merci

fredericmazue

Quote:
mais la JTable n'apparait pas

Ah bon ?
Parce que si je regarde ta capture avec mes petits yeux porcins, je vois bien un JTable.
Vide certes, mais présente.

Quote:
Est-ce que quelqu'un aurait une idée de la raison pour laquelle, la fenetre s'affiche mais
ne fait rien ?

Parce que le code est écrit par maxlegrand je dirais :)
Parce que maxlegrand musele les exceptions (cf. le post d'avant avec la JTable) , donc aucun messages d'erreurs apparents ni rien.
Mais je parierais volontiers qu'avec un code sans exceptions muselées, on verrait que la connexion à la base de données ne se fait pas.

Tiens à propos de base de données, je ne vois pas de pilote dans les ressources, c'est normal ?

maxlegrand

fredericmazue wrote:
Quote:
mais la JTable n'apparait pas

Ah bon ?
Parce que si je regarde ta capture avec mes petits yeux porcins, je vois bien un JTable.
Vide certes, mais présente.
Quote:

Reste vide en effet :lol:

Quote:
Quote:
Est-ce que quelqu'un aurait une idée de la raison pour laquelle, la fenetre s'affiche mais
ne fait rien ?

Parce que le code est écrit par maxlegrand je dirais :)
Parce que maxlegrand musele les exceptions (cf. le post d'avant avec la JTable) , donc aucun messages d'erreurs apparents ni rien.
Mais je parierais volontiers qu'avec un code sans exceptions muselées, on verrait que la connexion à la base de données ne se fait pas.

Pourtant à chaque fois qu'il y a une exception, j'écris e.printStackTrace();

Quote:
Tiens à propos de base de données, je ne vois pas de pilote dans les ressources, c'est normal ?

Normal, je ne pense pas ... Je commence à peine à utiliser JWS. Comment est-ce que s'écrive les pilotes dans la ressource ?

Merci

fredericmazue

Quote:
Pourtant à chaque fois qu'il y a une exception, j'écris

Je me suis permis de te charrier un peu, parce que dans la discussion JTable il y a quelques jours les exceptions étaient bel et bien muselées. :)
Et tu ne voyais pas ce qui n'allait pas à cause de ça.
Tel que tu décris le problème aujourd'hui, on jurerait que c'est semblable. As tu bien vérifié qu'aucune exception n'est muselée ?
Parce que si aucune exception n'était muselée, on en verrait une qui dit que la connexion à la base de données ne se fait pas, ou même une qui dit que les classes du pilote sont manquantes.
Enfin bref, ça marche pas et normalement il est légitime de s'attendre à une exception dans ce cas.

Quote:
Comment est-ce que s'écrive les pilotes dans la ressou rce ?

Ben les pilotes de bases de données sont un jar comme les autres à priori.
C'est quelle base de données au fait ? La connexion est elle seulement autorisée ?
maxlegrand

Quote:
Ben les pilotes de bases de données sont un jar comme les autres à priori.
C'est quelle base de données au fait ? La connexion est elle seulement autorisée ?

Je remets le code qui m'a permis de me connecter à la base de donnée sql server.
Pour effectuer la connection, je n'ai pas eu besoin d'importer un fichier jar dans Eclipse.
Voici le code pour la connection:
MyTableModel contient les méthodes pour remplir, vider la table
public static void main(String[] args){
		JFrame frame = new JFrame();			
		MyTableModel maTable = new MyTableModel();		
		JTable jTable = new JTable(maTable);
		List<Object[]> donnees = new ArrayList<Object[]>();
	
		//Parametre de connexion a la base de données
		String url="jdbc:odbc:MaTable";
    String login = "root";
    String password = "root";
    Connection connection = null;
    
		JScrollPane scroll = new JScrollPane(jTable);
		frame.setSize(600,250);
		frame.add(scroll);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		try{
			while(true){		
				maTable.vide();
				Driver monDriver = new JdbcOdbcDriver();
				DriverManager.registerDriver(monDriver);
				connection=DriverManager.getConnection(url,login,password);
				Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
				String sql = "SELECT * FROM MaTable";
				ResultSet rs = stmt.executeQuery(sql);
				ResultSetMetaData rsmd = rs.getMetaData();
				int ncols = rsmd.getColumnCount();
				//Remise du curseur à sa position initiale
				rs.beforeFirst();
				boolean suivant = rs.next();
				while(suivant){
					Object val [] = new Object[ncols];
					for(int j=1; j<=ncols; j++)
						val[j-1] = rs.getString(j);
					donnees.add(val);
					suivant = rs.next();
				}		
				((MyTableModel)jTable.getModel()).remplie(donnees);	
				//Remise du curseur à sa position initiale
				rs.beforeFirst();
				try {
					Thread.sleep(2000);
				}catch(InterruptedException ie){
					ie.printStackTrace();
				}	
			}
		}catch(SQLException se){
			se.printStackTrace();
		}
	}

Comme je n'ai pas utilisé de jar, je ne sais pas trop du quel tu parles.
J'ai essayé en mettant le jar sqljdbc.jar que j'ai téléchargé ici :
http://www.microsoft.com/downloads/thankyou.aspx?familyId=f914793a-6fb4-475f-9537-b8fcb776befd&displayLang=en
Mais ça ne donne rien. J'ai aussi essayé en mettant le jar rt.jar dans mon fichier jnlp mais rien également.

Je ne sais plus trop quoi tester.
La base de donnée est sql server 2005

fredericmazue

Quote:
Pour effectuer la connection, je n'ai pas eu besoin d'importer un fichier jar dans Eclipse.

Bien sûr que si.
Tu l'as fait à l'insu de ton plein gré voilà tout.

Quote:
Driver monDriver = new JdbcOdbcDriver();

Bon on voit que tu utilises le pont JDDC/ODBC. C'est intégré à Java, dans rt.jar.
Ne me dis pas que ce jar là n'est pas importé dans Eclipse hein ? :lol:

Quote:
Comme je n'ai pas utilisé de jar, je ne sais pas trop du quel tu parles.

Maintenant tu sais :)

Bon ton application est graphique, mais avec printStackTrace tu fais une sortie dans la console. Si l'appli n'est pas lancée par la console, c'est un peu comme si l'exception était muselée. Je veux dire qu'elle n'est pas traitée, car la seule sortie d'un message d'erreur n'est pas un traitement, et le message d'erreur n'est pas visible.
Dans une application graphique il est beaucoup mieux d'ouvrir une fenêtre de message pour informer. Et comme

catch(SQLException se){
         se.printStackTrace();
      } 

ne relance pas l'exception, au final elle est interceptée et pas traitée, donc c'est tout comme si elle était muselée.
maxlegrand, grand museleur d'exception devant l'éternel :D

Bon, donc la connexion ne se fait pas. Heu, c'est donc une connexion à une source de données OBDC que tu veux. Hem hem, tu es sûr que cette source est accessible ?

Quote:
je souhaitais déployer cette ap^plication via java web part
mais le programme ne fait rien.

Dans le cas général, un ordinateur lambda sur le Net n'a aucune chance d'accéder à la source de données ODBC.
Ou plus exactement l'application cherche la source de données ODBC sur la bécane où elle est lancée. Si la source est ailleurs ça ne risque pas de marcher
maxlegrand

J'ai changé et utilisé le pilote sql server. J'ai importé le jar qu'il fallait sqljdbc.jar.
Je lance le programme et j'obtiens l'exception :

com.microsoft.sqlserver.jdbc.SQLServerException: Échec de la connexion TCP/IP à l'hôte . java.net.ConnectException: Connection refused: connect
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at Test.main(Test.java:41)

Une idée d'ou peut provenir le probleme ?
Le code modifié :

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import com.microsoft.sqlserver.jdbc.SQLServerDriver;

public class Test{
	public static void main(String[] args){
		JFrame frame = new JFrame();			
		MyTableModel maTable = new MyTableModel();		
		JTable jTable = new JTable(maTable);
		List<Object[]> donnees = new ArrayList<Object[]>();
	
		//Parametre de connexion a la base de données
		String url = "jdbc:sqlserver://localhost:1433;databaseName=MaTable";
		String login = "root";
    String password = "root";
    Connection connection = null;
    
		JScrollPane scroll = new JScrollPane(jTable);
		frame.setSize(600,250);
		frame.add(scroll);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		try{
			while(true){		
				maTable.vide();
				Driver monDriver = new SQLServerDriver();
				DriverManager.registerDriver(monDriver);
				Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
				connection = DriverManager.getConnection(url,login,password);
				Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
				String sql = "SELECT * FROM MaTable";
				ResultSet rs = stmt.executeQuery(sql);
				ResultSetMetaData rsmd = rs.getMetaData();
				int ncols = rsmd.getColumnCount();
				//Remise du curseur à sa position initiale
				rs.beforeFirst();
				boolean suivant = rs.next();
				while(suivant){
					Object val [] = new Object[ncols];
					for(int j=1; j<=ncols; j++)
						val[j-1] = rs.getString(j);
					donnees.add(val);
					suivant = rs.next();
				}		
				((MyTableModel)jTable.getModel()).remplie(donnees);	
				//Remise du curseur à sa position initiale
				rs.beforeFirst();
				try {
					Thread.sleep(2000);
				}catch(InterruptedException ie){
					ie.printStackTrace();
				}	
			}
		}catch(SQLException se){
			se.printStackTrace();
		}catch(ClassNotFoundException cnfe){
			cnfe.printStackTrace();
		}
	}
}
maxlegrand

J'ai résussi à établir une connection en utilisant le driver sql server.
L'arborescence de mon projet est maitenant le suivant :
http://cjoint.com/data/gCpnNZCh70.htm

Le fichier sqljdbc_auth.dll est nécessaire car sinon j'obtenais une exception.
Le programme fonctionne normalement avec Eclipse mais ça se gâte encore avec Java Web Start.

Tous les fichiers et jar sont placés ici :
http://cjoint.com/data/gCpqhYq3rt.htm

J'ai mis le fichier sqljdbc_auth.dll dans l'archive testNtiveLib.jar

test.jnlp :

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://localhost/Local-Site-A/" href="test.jnlp">

	<information>
		<title>Mon Logiciel par JNLP</title>
		<vendor>Pierre Sylvestre</vendor>
		
	</information>

	<security>
		<all-permission/>
	</security>

	<resources>
		<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
		<jar href="http://localhost/Local-Site-A/test.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jfreechart-1.0.5.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/junit.jar"/">
		<jar href="http://localhost/Local-Site-A/lib/itext-2.0.1.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jfreechart-1.0.5.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jfreechart-1.0.5-experimental.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/servlet.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jcommon-1.0.9.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/jfreechart-1.0.5-swt.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/swtgraphics2d.jar"/>
		<jar href="http://localhost/Local-Site-A/sqljdbc.jar"/>
		<jar href="http://localhost/Local-Site-A/testNativeLib.jar"/>
	</resources>

	<application-desc main-class="MonMenu" />

</jnlp>

Ensuite je lance JWS, et j'obtiens :
Je mets toutes les étapes :
http://cjoint.com/data/gCpuOEZfYj.htm
http://cjoint.com/data/gCpwrohVRe.htm
http://cjoint.com/data/gCpxEgtlXM.htm
http://cjoint.com/data/gCpyYfLQYX.htm
et pour l'exception, c'est :

java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
	at com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.<init>(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(Unknown Source)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at MonMenu.main(MonMenu.java:605)
	... 9 more
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.sqljdbc_auth)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkLink(Unknown Source)
	at java.lang.Runtime.loadLibrary0(Unknown Source)
	at java.lang.System.loadLibrary(Unknown Source)
	at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(Unknown Source)
	... 23 more
fredericmazue

Cette fois on ne peut pas dire que ce sont les exceptions qui manquent ;)
A les voir, je dirai qu'une configuration de sécurité de JWS empêche le chargement des librairies natives, donc dans ton cas il s'agit de sqljdbc_auth.dll bien sûr
Et du coup la connexion est à nouveau refusée, un peu comme elle l'était quand sqljdbc_auth.dll manquait lors de tes essais.

Malheureusement je ne sais pas comme configurer pour que ça marche, je n'ai jamais eu à le faire et je ne sais pas. Mais tu trouveras bien.

maxlegrand

J'ai réussi à régler quelques soucis mais il en reste encore ...
J'ai signé toutes les archives mais arrivé au jar sqljdbc.jar, j'obtiens une erreur

Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

D:\Documents and Settings\pierre\Desktop\lib>jarsigner -keystore monStore -signe
djar sSQLJDBC.jar sqljdbc.jar signature
Enter Passphrase for keystore: *****
jarsigner: unable to sign jar: java.util.zip.ZipException: invalid entry compres
sed size (expected 6093 but got 6065 bytes)

Comment corrigé ça ?

Donc j'ai essayé de lancer le JWS sans avoir signé ce jar et j'obtiens :
Erreur : Les ressources jar n'ont pas été signés à l'aide du même certificat :

Fichier de lancement :

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://localhost/Local-Site-A/" href="test.jnlp">

	<information>
		<title>Mon Logiciel par JNLP</title>
		<vendor>Pierre Sylvestre</vendor>
		
	</information>

	<security>
		<all-permissions/>
	</security>

	<resources>		
		<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
		<jar href="http://localhost/Local-Site-A/lib/sTest.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/sFreeChart.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/sUnit.jar"/">
		<jar href="http://localhost/Local-Site-A/lib/sText.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/sFreeChartExperimental.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/sServlet.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/sCommon.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/sFreeChartSWT.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/sSWT2d.jar"/>
		<jar href="http://localhost/Local-Site-A/lib/sqljdbc.jar"/>
	</resources>
	
	<resources os="Windows">
		<nativelib href="sAuth.jar"/>		
	</resources>

	<application-desc main-class="MonMenu" />

</jnlp>

Exception :

JNLPException[category: Erreur dans le fichier de lancement : Exception: null : LaunchDesc: 
<jnlp spec="1.0+" codebase="http://localhost/Local-Site-A/" href="http://localhost/Local-Site-A/test.jnlp">
  <information>
    <title>Mon Logiciel par JNLP</title>
    <vendor>Pierre Sylvestre</vendor>
    <homepage href="null"/>
  </information>
  <security>
    <all-permissions/>
  </security>
  <update check="timeout" policy="always"/>
  <resources>
    <java href="http://java.sun.com/products/autodl/j2se" version="1.6+"/>
    <jar href="http://localhost/Local-Site-A/lib/sTest.jar" download="eager" main="false"/>
    <jar href="http://localhost/Local-Site-A/lib/sFreeChart.jar" download="eager" main="false"/>
    <jar href="http://localhost/Local-Site-A/lib/sUnit.jar" download="eager" main="false"/>
    <jar href="http://localhost/Local-Site-A/lib/sFreeChartExperimental.jar" download="eager" main="false"/>
    <jar href="http://localhost/Local-Site-A/lib/sServlet.jar" download="eager" main="false"/>
    <jar href="http://localhost/Local-Site-A/lib/sCommon.jar" download="eager" main="false"/>
    <jar href="http://localhost/Local-Site-A/lib/sFreeChartSWT.jar" download="eager" main="false"/>
    <jar href="http://localhost/Local-Site-A/lib/sSWT2d.jar" download="eager" main="false"/>
    <jar href="http://localhost/Local-Site-A/lib/sqljdbc.jar" download="eager" main="false"/>
    <nativelib href="http://localhost/Local-Site-A/sAuth.jar" download="eager" main="false"/>
  </resources>
  <application-desc main-class="MonMenu"/>
</jnlp> ]
	at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
	at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.launch(Unknown Source)
	at com.sun.javaws.Main.launchApp(Unknown Source)
	at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
	at com.sun.javaws.Main$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
fredericmazue

Quote:
jarsigner: unable to sign jar: java.util.zip.ZipException: invalid entry compres

l'archive jar, qui n'est comme tu le sais rien d'autre qu'un zip, ne serait elle pas intègre ?

Au fait je pensais à toi ce matin et je me disais, puisqu'il y a une dll côté client ça veut dire que ton appli tourne forcément sous Windows ?

Je me pensé aussi "mais ça fait combien de temps qu'il perd avec ça" ? Et du coup je me suis dit:

(eql "Java" "efficacité")
nil

;) :lol:

Bon je rigole, mais faut pas croire, je compatis à ta galère.
Bon courage à toi

maxlegrand

fredericmazue wrote:
Quote:
jarsigner: unable to sign jar: java.util.zip.ZipException: invalid entry compres

l'archive jar, qui n'est comme tu le sais rien d'autre qu'un zip, ne serait elle pas intègre ?

Au fait je pensais à toi ce matin et je me disais, puisqu'il y a une dll côté client ça veut dire que ton appli tourne forcément sous Windows ?

Je me pensé aussi "mais ça fait combien de temps qu'il perd avec ça" ? Et du coup je me suis dit:

(eql "Java" "efficacité")
nil

;) :lol:

Bon je rigole, mais faut pas croire, je compatis à ta galère.
Bon courage à toi


Ca a été long mais j'ai enfin réussi à faire fonctionner mon programme avec JWS.
Pour ce qui est de mon erreur précédente, je l'ai résolu en décompressant sqljdbc.jar puis j'ai viré le répertoire qui contenait le fichier manifest puis j'ai recrée l'archive. Je l'ai signé. Et ça fonctionne maitenant.
Merci pour ton aide et soutien :wink: