나는 내 Java 코드를 실행할 수 있도록 컴파일하기를 mpfs 나를 위한 자바 객체 모델링 패키지, 인터페이스입니다 수신기마다 공유됨 벤심 배빠르게 한.
다음 코드는 컴파일 오류 없이.
javac -d . -cp ./apache-log4j-1.2.16/log4j-1.2.16.jar:./vensim.jar SpatialModel.java VensimHelper.java VensimException.java VensimContextRepository.java
그러나 실행하려고 하면 다음과 같다.
java -cp ./apache-log4j-1.2.16/log4j-1.2.16.jar:./vensim.jar SpatialModel vars
저도 다음 오류: ", 오류: 기본 클래스 또는 로드 스파시알모델 찾을 수 없습니다. ". # 39, & # 39 main& 내 스파시알모델리자바 코드에 있습니다. 방법 (아래), 그래서 I& # 39 m, 잘 모르는 문제는 - 아무나 제발 도와줘? 감사합니다.
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));
}
}
이 수업은 패키지의 경우
package thepackagename;
public class TheClassName {
public static final void main(String[] cmd_lineParams) {
System.out.println("Hello World!");
}
}
그럼 호출하십시오:
java -classpath . TheClassName
결과 'Error: 기본 클래스 또는 로드 '테클레스나미 찾을 수 없습니다. 이 때문에 비활성화해야 호출됨 색상에는 fully-qualified 이름:
java -classpath . thepackagename.TheClassName
이 '와' 디렉터리입니다 테팩건임 classpath 에 있어야 합니다. 이 예에서, 즉 '.' 는 현재 디렉터리인 완전히 classpath. 이에 따라 '예' 라는 특정 디렉토리에서 테팩건임 있어야 하는 것입니다.
이 클래스의 이름 없는 ',' 테클레스나미 명확히 It& # 39 의 '테팩건임스테클레스나미'. 이 때문에 클래스 없음 테클레스나미 시도중입니다 autoexec. '' 작동하지 않으면 그 이름을 존재합니다. 현재 classpath 에 없는 겁니다.
마지막으로, 참고로 컴파일됨 (.class) 버전이 아닌 실행됨을 소스 코드 (.java) 버전. 이에 따라 "CLASSPATH."
Classpath 포함시키십시오 데이터베이스에구성원을 자바스 및 java 명령의세 봐야 합니다.
javac -cp . PackageName/*.java
java -cp . PackageName/ClassName_Having_main
예를 들어, 다음 있습니다.
패키지 이름: 콩스테스트 클래스 이름: Hello (이 주) 파일 내부에 위치해 " src/com/test/Hello.java";
외부에서 디렉터리입니다.
$ cd src
$ javac -cp . com/test/*.java
$ java -cp . com/test/Hello
저의 경우는 기본적으로 '이클립스 (Eclipse) 프로젝트에서 내가 만든 내 src' 아닌 'src / 주 / java /'.
그래서 '와' 와 같은 일이 됐지 미팩거스모어팩거스미클라스 보았으매 디렉토리 구조를 가지고 있는 ',' src / / / 모리팩거 미팩거 myclass 본질적으로 같은 잘못이 없다. 하지만 '이' 때 '마프너 실행하십시오 clean install / java / / / src / 주 미팩거 모리팩거 myclass' 찾고 있습니다. 하지만, t # 39 클래스용 찾을 수 없는 것이라고 won& 오류 중 하나. 그래서 구축 · 운영할 때 출력 Jar 그 결과, 성공적으로 방침이다.
Error: Could not find or load main class mypackage.morepackage.myclass
단순히 포함되어 있기 때문에 절대 패키지된 클래스에 in the Jar.
내가 이 오류가 발생했습니다 눌려졌습니다 " 갑자기 사용한 Java 1.8, 구축 및 clean"; 에서 NetBeans. 내가 잠깐 1.7 로 전환된 다시 다시 다시 확인을 클릭한 속성 및 교환, 모든 협력했습니다 1.8 완벽하게.
내가 누군가를 도울 수 있는 이 같은 수 있으면 좋겠다 아웃해야 오류뿐만 꽤 오랜 시간이 걸립니다.
이 때 내가 나를 위해 기존 프로젝트 eclipse 에 임포트된 문제가 발생했습니다. 무슨 일이 없는 것은 모든 파일을 복사됨 숨겨요, 하지만 외부 숨겨요. 업그레이드됨 때는 내가 실행하십시오 > 했다. # 39 주 방법을 찾기 구성, 정보기술 (it), t couldn& 실행하십시오 패키지에 않았기 때문이다. 내가 한 것은 모든 파일을 복사합니다 숨겨요 그리고 이클립스 다음 주 방법을 찾을 수 있었다. 그래서 결국 있다는 것을 확실히 하는 방법을 찾을 수 있는지, 주 업무는 Eclipse 에서 너회의 jave 파일이 적합한 패키지.
그렇게 단순한 것 보다 많은 사람들이 날 경우, 다음과 같습니다.)
cd 를 '프로젝트 폴더 / src / 패키지' 만들 수 있는 '자바스 유크라수스자바 실행하십시오 좁히어 유크라수스자바 볼 수 있습니다.' 다음 '' src 폴더 및 cd 유르클레스트클레스 빼냅니다 꽂으십시오 'jave 파커게.유클레스' 폴더 '' 구축하십시오 좁히어 실행할 수 있습니다.
지금 사용하고 있는 동일한 작업을 수행할 수 있는 명령 프롬프트 사용하여 windows 의 Mac 또는 터미널