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

  • Booredatwork.com

    Booredatwork

    5 Ocak 2009
  • chickenby

    chickenby

    2 HAZİRAN 2008
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011