SORU
20 EYLÜL 2011, Salı


Hata: ya ana sınıfı bulmak yüklenemedi

Sorun ve Java kodumu, Vensim için ortak bir nesne arayüzü ile Java için bana izin vermek amacıyla, simülasyon modelleme paketi derleme koşarak yaşıyorum.

Aşağıdaki kod hata derler:

javac -d . -cp ./apache-log4j-1.2.16/log4j-1.2.16.jar:./vensim.jar SpatialModel.java     VensimHelper.java VensimException.java VensimContextRepository.java

Aşağıdaki çalıştırmak için çalıştığınızda, ancak:

java -cp ./apache-log4j-1.2.16/log4j-1.2.16.jar:./vensim.jar SpatialModel vars

Aşağıdaki hatayı alıyorum: "Hata: ya ana sınıfı SpatialModel yükü bulunamadı ". SpatialModel.java benim kod bir 'ana' yöntemi (aşağıda), yani sorunun ne olduğundan emin değilim - herkes lütfen bana yardım? içermiyor Teşekkürler.

import java.io.File;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.apache.log4j.Logger;

public class SpatialModel {

    private VensimHelper vh;

    public static final String DLL_LIBNAME_PARAM = "vensim_lib_nam";

    public static final String MODEL_PATH_PARAM = "vensim_model_path";

    private final static int VENSIM_CONTEXT_CREATION_MAX_FAILURE_COUNT = 10;

    public SpatialModel() throws SpatialException {

        String libName = System.getProperty(DLL_LIBNAME_PARAM);
        String modelPath = System.getProperty(MODEL_PATH_PARAM);        

        if(libName == null || libName.trim().equals("")) {
            log.error("Vensim library name has to be set with -D"   DLL_LIBNAME_PARAM);
            throw new SpatialException("Vensim library name has to be set with -D"   DLL_LIBNAME_PARAM);
        }

        if(modelPath == null || modelPath.trim().equals("")) {
            log.error("Model path has to set with -D"   MODEL_PATH_PARAM);
            throw new SpatialException("Model path ahs to be set with -D"   MODEL_PATH_PARAM);
        }

        for (int i = 0; i < VENSIM_CONTEXT_CREATION_MAX_FAILURE_COUNT && vh == null; i  ) {
            try {
                log.info("creating new vensim helper\n\tdll lib: "   libName   "\n\tmodel path: "   modelPath);
                vh = new VensimHelper(libName, modelPath);
            } catch (Throwable e) {
                log.error("An exception was thrown when initializing Vensim, try: "   i, e);
            }
        }
        if (vh == null) {
            throw new SpatialException("Can't initialize Vensim");
        }

    }

    public static void main(String[] args) throws VensimException {

        long before = System.currentTimeMillis();   
        String libName = System.getProperty(DLL_LIBNAME_PARAM);
        String modelPath = System.getProperty(MODEL_PATH_PARAM);

        if (libName == null) {
            libName = "libvensim";
        }
        if(modelPath == null) {
            modelPath = "~/BassModel.vmf";
        }

        System.setProperty(DLL_LIBNAME_PARAM, libName);
        System.setProperty(MODEL_PATH_PARAM, modelPath);

        if (args.length > 0 && args[0].equals("info")) {
            System.out.println(new VensimHelper(libName, modelPath).getVensimInfo());
        } else if (args.length > 0 && args[0].equals("vars")) {
            VensimHelper helper = new VensimHelper(libName, modelPath);
            String[] vars = helper.getVariables();
            for (String var : vars) {
                System.out.println(helper.getVariableInfo(var));
            }
        } else {

            File f = new File(".");
            System.out.println(f.getAbsolutePath());

            SpatialModel sm = new SpatialModel();
        }

        System.out.println("Execution time: "   (System.currentTimeMillis() - before));
    }

}

CEVAP
20 EYLÜL 2011, Salı


Sizin sınıf için .class dosya konumunu ekleyin emin olmalısınız. Bu yüzden, mevcut klasörün içinde eğer sınıf için . ekleyin. Windows ayırıcı sınıf not ; ıe noktalı virgül

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How to Cook ?

    How to Cook

    31 Ocak 2007
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010
  • maxman.tv

    maxman.tv

    29 EKİM 2013