문제

JDK 1 - 8, OpenJDK, IBM JDK 및 Microsoft JDKs조차도 가능한 한 Microsoft JDK에서 일련의 JVMS에 대한 일련의 최소한의 "연기 테스트"를 원합니다.이것을 테스트 할 수 있어야 할 최소한의 Java 클래스 파일을 만들 수있는 방법이 있습니까?

업데이트

실행할 수 있어야합니다 :

Java -CP 클래스 이름

및 JVM이 제대로 실행 중임을 확인하는 출력이 있습니다.

또한 JVMS가 항상 작동하는 것으로 생각하는 사람들은 하나의 컴퓨터에서 최대 20 개의 JVM이있는 시스템을 사용하고 일부 JVM을 손상시킬 수 있음을 알아야합니다.또한 모든 JVM이 모든 .class 파일을 모두 실행할 수있는 것은 아닙니다.

도움이 되었습니까?

해결책

krakatau는 최소한의 클래스 파일을위한 Aseembler 파일 예제 예제

.class public minimal
.super java/lang/Object
.

JVM에서로드되는 가장 간단한 클래스 파일을 제공합니다. 일반적으로 다른 도구에서 얻을 수있는 모든 선택 메타 데이터가 없습니다 (JASMIN은 항상 SourceFile 특성을 추가합니다). 클래스 이름을 단축하여 몇 바이트를 면도 할 수 있으므로 가장 짧은 파일이 아니라 기본적으로 가장 간단한 클래스입니다.

이 클래스가로드되는 동안 아무런 코드가 없으므로 어떤 코드가 없으므로 을 의미있게 의미가 없습니다. 진입 점으로 실행할 수있는 것을 원하면 주요 기능을 추가해야합니다. 이것은 Hello World 예제를 적용하여 인쇄 코드를 제거하여 수행 할 수 있습니다.

.class public Code
.super java/lang/Object

.method public static main : ([Ljava/lang/String;)V
    .limit stack 10
    .limit locals 10

    return
.end method
.

이렇게하면 실행 가능한 클래스를 제공하며 즉시 반환됩니다. 따라서 주요 기능을 갖춘 가장 간단한 클래스입니다.

다른 팁

Java 호환성 키트 (JCK) 가이 정확한 목적을 위해 개발되었습니다.최소한의 JAR은 JVM 구현의 정확성을 확인하기에 충분하지 않을 것입니다.

최소한의 프로그램이 실행되는지 확인하기를 원한다면, 버전 1의 Java 클래스 파일 형식으로 빈 main 메소드로 간단한 클래스를 컴파일하십시오. Java의 뒤로 호환성으로 인해 JVM 및 JVM이 이해할 수 있어야합니다.상태 코드 0로 종료해야합니다.

주요 방법이있는 모든 클래스는 모든 JVM에서 실행할 수 있습니다. 이는 테스트 할 최소한의 경우가 될 수 있습니다.

class Hello {
    public static void main (String args[])
    {
        System.out.println("hello");
    }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top