2014-05-27 1 views
-1

클래스 파일을 꺼내서 몇 줄의 코드를 추가하고자하는 항아리가 있습니다. 클래스 편집기가 있지만 실제로 코드를 변경할 수는 없으며 상수를 변경할 수 있습니다. 나는 당신이 .class로부터 소스 코드를 읽을 수있는 프로그램을 가지고있다.하지만 당신은 그것에 어떤 것도 변경할 수 없다. .class 파일에서 소스 코드를 읽고 편집 할 수있는 프로그램이나 Eclipse 플러그인이 있습니까?java .class 파일의 실제 코드를 편집하는 방법은 무엇입니까?

답변

0

디 컴파일러를 살펴보십시오. 그들은 자바 바이트 코드를 다시 소스 코드로 변환 할 것이다. 그러한 컴파일러의 한 예가 JD입니다. http://jd.benow.ca/

소스 코드를 편집 한 후 코드를 다시 컴파일하고 해당 .jar 파일에 압축해야합니다.

-1

자바 디 컴파일러가 필요합니다. 이렇게하면 클래스 파일에서 바이트 코드를 가져 와서 소스 코드로 다시 변환합니다. 여기에서 디 컴파일러가 생성하는 .java 파일을 다시 컴파일해야합니다. 여기

은 내가 본 몇 가지 자바 디 컴파일러입니다 : 파일이 오래된만큼 버전 인 경우 http://dcompiler.sourceforge.net/

http://jd.benow.ca

+0

물론 원본 소스를 제공하지 않습니다. –

+0

실제로 시나리오가 제대로 작동하는지 테스트했기 때문에 모든 시나리오에 대해 잘 모릅니다. 소규모 프로젝트에서는 동일한 기능을 가진 올바른 코드를 생성했습니다. 분명히 그것은 당신에게 코멘트를 돌려 줄 수 없다. 그것은 중요하다. –

0

, 당신은 바이트 코드로 그것을 분해 jasper를 사용하는 바이트 코드를 편집 할 수 있습니다 및 jasmin을 사용하여 다시 어셈블하십시오. 불행히도 이러한 도구는 아직 업데이트되지 않았습니다.

Java 코드를 생성하지 않습니다. 당신은 자바 바이트 코드를 배워야 할 것이다. 그러나 이것은 소위 "디 컴파일러 (decompiler)"방법보다 더 신뢰할 수 있습니다.

0

Java .class 파일은 바이트 코드 형식이므로 .java 소스 파일을 편집하는 방법으로 수정할 수 없습니다. 바이트 코드는 Java 자체가 아닌 기계 언어에 가까운 저수준 언어입니다.

소스를 수정해야하는 경우 한 가지 옵션은 디 컴파일러를 사용하는 것입니다 (예 : JAD (Java Decompiler), 소스 파일을 가져온 다음 javac를 사용하여 소스 파일을 변경하고 .class로 다시 컴파일하십시오. 원래 jar 파일에 사용 된 Java 언어 버전 (1.4, 5, 6, 7, 8)을 알아 냈는지 확인하십시오.

+0

그래, 내가 decompiled 그것을 성공적으로,하지만 지금 javac를 사용하여 컴파일하려고하면 jar 파일에있는 다른 .java 파일을 찾을 수 없기 때문에 작동하지 않습니다. 그것은 단지 하나의 클래스를 컴파일하게하지 않습니다. 항아리에있는 다른 모든 클래스를 디 컴파일 한 다음 다시 컴파일해야합니까? 많은 수업이 있으므로 이렇게하려면 매우 오랜 시간이 걸릴 것입니다. – andrew3ds

+0

javac에서는 불행히도 예. jar 파일 전체를 디 컴파일하고 다시 컴파일해야합니다. 다른 모든 종속 jar 파일도 컴파일러 클래스 경로에 넣어야합니다. –

관련 문제