2012-12-10 5 views
1

ms-dos에서 appletviewer 명령 줄을 사용하여 애플릿을 실행하는 데 문제가 있습니다. ,애플릿을 실행할 때 ClassNotFoundException이 발생했습니다.

package org.test; 

import java.applet.Applet; 

/*<applet code="org.test.Test" width="200" height="100" 
codebase="..\..\..\classes\org\test"></applet>*/ 

public class Test extends Applet{ 

    public void init(){ 

    } 

    public void start(){ 

    } 

    public void stop(){ 

    } 

    public void destroy(){ 

    } 

} 

내가 애플릿 뷰어는 그 안에 애플릿 태그가있는 파일이 필요하다는 기사에서 읽기 : 여기

Project 
|___classes 
|  |___org 
|   |___test 
|     |___Test.class 
| 
|__src 
    |___org  
     |___test 
       |___Test.java 

가 Test.java 소스 파일입니다 이 내 프로젝트 트리입니다 그래서 그 파일을 파싱하여 태그를 검색합니다. 그것이 위의 소스 파일에서 주석 처리 된 행으로 수행 한 작업입니다.

원본 파일이 오류없이 컴파일됩니다. 그럼 나는 그것을 실행하려고합니다. 그래서 난 내 소스 파일이있는 폴더로 이동, 나는 이것을 시도 :

프롬프트 \ 프로젝트 \ SRC \ 조직 \ 테스트> 애플릿 뷰어 Test.java 여기

가 발생하는 오류입니다 :

java.lang.ClassNotFoundException가 : org.test.Test sun.applet.AppletClassLoader.findClass (AppletClassLoader.java:211) 에서 java.lang.ClassLoader.loadClass (ClassLoader.java:306)에서 sun.applet.AppletClassLoader.lo에서 sun.applet.AppletPanel.createApplet에서 sun.applet.AppletClassLoader.loadCode (AppletClassLoader.java:662) 에서 java.lang.ClassLoader.loadClass (ClassLoader.java:247) 에서 adClass (AppletClassLoader.java:144) (AppletPanel.java:785) at sun.applet.AppletPanel.runLoader (AppletPanel.java:714) at sun.applet.AppletPanel.run (AppletPanel.java:368) at java.lang.Thread.run (Thread. java : 662)

나는 그것을 제거하면 모든 것이 정상적으로 작동하기 때문에 오류는 내 Java 소스 파일의 첫 번째 줄에서 비롯된 것이라고 생각한다. 하지만 그 이유는 모르겠다. 누군가 나에게 설명해 주시겠습니까?

답변

1

가 나는

codebase="../../../classes" 

해야한다 생각 그리고 당신은 당신이 그것을 실행하려고하면 현재 디렉토리가 classes을해야하는 경우에의 .class 파일이 아닌 된 .java 파일을 실행하려고한다.

+0

좋아, 나는 방금 미쳐지기 시작했다 !! 고마워요! 나는 이제 이해한다. –

+0

'.. \ .. \ .. \ classes "는"../../../ classes "이어야합니다. –

+0

@AndrewThompson : 두 표기법 (\ 및 /)이 잘 작동하는 것 같습니다. 나는 그들 모두를 시험해 보았다. –

관련 문제