J'ai une méthode dans laquelle je crée un fichier arff et si je l'exécute (avec le code dans les méthodes principales) fonctionne comme prévu. Lorsque j'essaie de placer le code dans une autre méthode, puis d'appeler la méthode d'une autre classe (dans mon cas, à partir d'une classe de servlet), j'obtiens l'erreur ci-dessus lorsque le constructeur est appelé. Mon jargon wekka est 3.8.1 et la classe FastVector est déprimée. Toute idée comment puis-je résoudre ceci? Voici le code:java.lang.ClassNotFoundException: weka.core.FastVector
public void createTestData(int id_student, String teacher_subject, int id_level, boolean isMand)
throws IOException {
FastVector attribute, attributeVals;
Instances data;
Instances dataRel;
double[] vals;
String isMandatory = "" + isMand;
int level = 10;
String teacher = teacher_subject.split("-")[1];
String subject = teacher_subject.split("-")[0];
// 1. set up attributes
attribute = new FastVector();
attribute.addElement(new Attribute("id_student"));
// - string
attribute.addElement(new Attribute("subject", (FastVector) null));
attribute.addElement(new Attribute("teacher", (FastVector) null));
// - numeric
attribute.addElement(new Attribute("level"));
// - nominal
attributeVals = new FastVector();
attributeVals.addElement("true");
attributeVals.addElement("false");
attribute.addElement(new Attribute("isMandatory", attributeVals));
// attribute.addElement(new Attribute("rezult"));
// 2. create Instances object
data = new Instances("MyRelation", attribute, 0);
// 3. fill with data
// first instance
vals = new double[data.numAttributes()];
// - numeric
vals[0] = id_student;
// - nominal
vals[1] = data.attribute(1).addStringValue(subject);
// - string
vals[2] = data.attribute(2).addStringValue(teacher);
// - date
vals[3] = level;
vals[4] = attributeVals.indexOf(isMandatory);
// vals[5] = 10;
// add
data.add(new DenseInstance(1.0, vals));
// 4. output data
System.out.println(data);
ArffSaver arffSaverInstance = new ArffSaver();
arffSaverInstance.setInstances(data);
arffSaverInstance.setFile(new File("test.arff"));
arffSaverInstance.writeBatch();
}
Dans la classe servlet:
DataForTrain testData = new DataForTrain();
try {
testData.createTestData(id_student, teacher_subject, id_level, isMandatory);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Le fichier jar avec cette classe est-il disponible sur le serveur sur lequel vous exécutez le logiciel? –