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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Samuel DEVULDER
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.
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.
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 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.
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.
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
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
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/.
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 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)
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)
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 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.
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.
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.