Jasmin 코드로 컴파일하여 Java Bytecode 컴파일러로 작성하고 어셈블하는 중입니다. 나는 소스 코드 파일이 자바 라이브러리 클래스를 참조하고 사용할 수 있다는 의도로이를 만들었습니다. (당신은 String, 인쇄 등을 위해 꽤 많이 가지고 있습니다). 내 문제는이 일을 정확히 수행하는 방법입니다.Java에서 Java로 바이트 코드 컴파일러 : Java 클래스 라이브러리 정보를 얻으려면 어떻게해야합니까?
지금까지 Java 설치 폴더의 텍스트 파일에 보관 된 모든 라이브러리 클래스 목록에 대한 참조를 사용했습니다 (패키지 및 이름 만 나열 함). 비록 라이브러리 클래스가 사용되었을 때 타입 검사기가 어떤 타입 검사도 할 수 없었기 때문에 파서/타입 검사기를 코딩하는데 이것을 사용했다.
라이브러리 클래스의 메서드를 호출하려는 경우 전체 메서드 서명을 제공해야하므로 코드 생성 작업을 수행하는 것이 실제로 문제가됩니다. 액세스 할 수없는 무언가입니다.
저는 진행 방법에 대한 사람들의 조언을 배회했습니다. 한 가지 방법은 모든 클래스를 거쳐 모든 매개 변수와 반환 유형의 데이터베이스/목록을 만드는 것입니다. 이것은 극도로 시간 소모적이며 아마도 너무 비현실적입니다. 가능한 다른 우아한 접근법이 있습니까?
감사합니다, 윌
P.S. 나는 이것을 코딩하기 위해 파이썬을 사용하고있다. 솔루션에서 Java 코드를 사용해야한다면 하위 프로세스로 실행할 수 있다고 가정합니다.
예, 결국이 옵션을 사용했습니다. 필자는 메서드/필드 등의 이름을 가진 작은 자바 프로그램을 작성하고 클래스가 속한 클래스를 반환합니다 (존재하는 경우). 가능한 모든 Java Refletion API를 사용할 수 있습니다. –