De quoi devenir fou --

Le
Olve
Bonjour,

J'ai une application web qui utilise javascript et java.
Ce n'est pas très évolué, c'est fait pour firefox et vous pouvez même
aller voir là :

http://math.univ-lille1.fr/~ramare/Jeux/Solitaire/Solitaire.html

Bon. Oui, je suis un débutant.
Maintenant, mon vrai problème est le suivant :

Je mets en place un moteur java pour utiliser lpsolve et passer sur une
programmation plus structurée. Jusque là tout va bien.
Maintenant, si je garde la version commentée
/*
public static boolean FaisableEnRatPos(){
try{
LpSolve mylp = LpSolve.makeLp(0, 10);
} catch (LpSolveException lpse){
lpse.printStackTrace();
}
return true;
}
*/ (dans Automate.java)
tout va bien. De toutes façons la fonction
FaisableEnRatPos() n'est appelée nulle part.

Mais si je décommente ce passage, j'obtiens un
-
Automate throws: Error calling method on NPObject! [plugin exception:
java.lang.reflect.InvocationTargetException].
-

La seule différence est si je commente ou décommente cette partie
*inutile* de code -- Oui, j'espère qu'un jour cette partie sera utile,
mais voilà, j'ai réduit le problème à cela -- Et suis coi.

Une idée ?

Ou une idée pour débugger ?

J'ai peut être une erreur indétectée avant qui se déclenche là --
Merci de votre patience si vous avez tenu jusqu'ici !
Amitiés,
Olivier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Samuel DEVULDER
Le #24533141
Le 03/06/2012 21:13, Olve a écrit :

Une idée ?




Oui, quand le code est dé-commenté, les dépendances sont changées (cf.
les imports). Du coup le class-loader qui ne doit être configuré que
pour la version "avec commentaires", doit avoir des problèmes pour
charger la classe qui a des dépendances non résolues.

Ou une idée pour débugger ?



Il faut regarder au niveau du classpath à mon avis.

sam.
Olve
Le #24533661
Le 03/06/2012 22:23, Samuel DEVULDER a écrit :
Le 03/06/2012 21:13, Olve a écrit :

Une idée ?




Oui, quand le code est dé-commenté, les dépendances sont changées (cf.
les imports). Du coup le class-loader qui ne doit être configuré que
pour la version "avec commentaires", doit avoir des problèmes pour
charger la classe qui a des dépendances non résolues.

Ou une idée pour débugger ?



Il faut regarder au niveau du classpath à mon avis.



Oh, merci --
Quand je compile une version sans firefox et une partie de ce code, ça
marche, mais firefox doit avoir du mal à lire lpsolve55j.jar (qui est
pourtant dans le même répertoire). J'investigationne et reposterai
demain peut être la correction de mon erreur !
A.O.
Olve
Le #24536561
La suite donc.

lpsolve donne lpsolve55.jar.
On peut en extraire un répertoire lpsolve/ qu'il suffit de mettre dans
le répertoire des autres scripts java pour que tout fonctionne, merci.

Enfin, tout fonctionne, non :/
Je n'ai plus d'erreur de NPObject etc, mais je n'ai pas dû installer
lpsolve convenablement. Si je compile le script de demo
-----------------------------------------------------------------
import lpsolve.*;

public class Demo {
public static void main(String[] args) {
try {
LpSolve solver = LpSolve.makeLp(0, 4);
solver.strAddConstraint("3 2 2 1", LpSolve.LE, 4);
solver.strAddConstraint("0 4 3 1", LpSolve.GE, 3);
solver.strSetObjFn("2 3 -2 3");
solver.solve();
System.out.println("Value of objective function: " +
solver.getObjective());
double[] var = solver.getPtrVariables();
for (int i = 0; i < var.length; i++) {
System.out.println("Value of var[" + i + "] = " + var[i]);
}
solver.deleteLp();
}
catch (LpSolveException e) {
e.printStackTrace();
}
}
}
------------------------------------------------------------------------
et que je l'execute, je n'ai aucun problème. Mais dans le script java
chargé par l'applet de ma page html, ça coince. Il y a
------
try{
cU.Alert("Going to Tests!!!");
LpSolve mylp = LpSolve.makeLp(0, 0);
cU.Alert("In FaisableEnRationnelsPositifs ... ");
} catch (LpSolveException lpse){
cU.Alert("Exception in FaisableEnRationnelsPositifs!!");
lpse.printStackTrace();
}
------------------------------------------
Je vous passe qui est cU.Alert, mais ça écrit sur la page web. À
l'exécution, j'ai bien un "Going to Tests!!!"
mais plus rien d'autre. Stop.

Et je n'arrive pas à repérer d'erreur --

ldconfig a été lancé, liblpsolve55.so est dans /usr/lib/ et dans
/usr/lib/lp_solve/.

?? Merci de votre patience !
Amitiés,
Olivier
Samuel DEVULDER
Le #24536901
Le 04/06/2012 23:14, Olve a écrit :

LpSolve mylp = LpSolve.makeLp(0, 0);



C'est possible de résoudre un système de 0 équations à 0 inconnues?
Que fait l'API dans ce cas (ca fait un sacré programme linéaire
dégénéré ce truc)

sam (ancien utilisateur Cplex, Xpress, etc)
Olve
Le #24536991
Le 05/06/2012 07:55, Samuel DEVULDER a écrit :
Le 04/06/2012 23:14, Olve a écrit :

LpSolve mylp = LpSolve.makeLp(0, 0);



C'est possible de résoudre un système de 0 équations à 0 inconnues?
Que fait l'API dans ce cas (ca fait un sacré programme linéaire
dégénéré ce truc)



Oui :)
C'est la première instruction : on crée le programme linéaire.
L'interface ne fait rien que créer la structure (un LpSolve, c'est
une collection de champs. Ceux des équations sont juste null)
Mais je peux mettre LpSolve.makeLp(0, 4); cela ne change rien.

A.O.
Publicité
Poster une réponse
Anonyme