2010-08-10 7 views

답변

3

JAR 또는 별도로 소스 코드가없는 경우가 아니면 Java 디 컴파일러를 사용하는 것이 가장 좋습니다. 코드가 처음 컴파일 된 방식에 따라 원본 작성자가 작성한 코드와 상당히 다른 소스 코드가 생성 될 수 있습니다 (기능적으로는 동일하지만). 예를 들어, 특정 옵티 마이저 옵션은 루프가 다시 쓰여지고 로컬 변수가 제거 될 수 있습니다. 특정 디버그 옵션을 사용하면 로컬 변수의 이름이 제거 될 수 있으므로 디 컴파일러는 이름을 고쳐야합니다 (의미가 없습니다).

당신이하고 싶은 것이 합법적인지 여부에 대해서도 질문 할 것입니다. 일반적으로 프로젝트의 수정 라이센스가있는 경우 소스 코드를 사용할 수 있으므로 제안한 것을 수행 할 필요가 없습니다.

+0

라이센스를 구입했지만 지원이 미흡하고 문서가 부족합니다. 내가 할 수있는 최소한이야. – KJW

+1

그건 더 이상 합법적 이진 않다. – dty

+2

반쪽에있는 제품을 제공하고 awol로 가서 고객을 찢어 버리는 것도 합법적이지 않다. – KJW

0

나는 Cavaj 디 컴파일러를 사용했고, 꽤 잘 돌아갔다. 7zip과 같은 압축 해제 프로그램으로 jar 파일을 열면 .jar 파일은 실제로 zip 파일입니다. 그런 다음 .class 파일을 Cavaj로 보내면됩니다. .class 파일은 패키지별로 구성되므로 com.foo.Bar는 .jar 내의 com/foo/Bar.class가됩니다.

상황에 따라 적법성이 의심 스러울 수 있습니다. 필자는 필자가 작성한 응용 프로그램의 이전 버전에 대한 소스를 살펴본 적이 있지만 더 이상 소스가 없었습니다.

+0

Java에는 무료 디 컴파일러가 함께 제공됩니다. javap – dty

+0

방금 ​​javap을 체크 아웃했는데 VM이 실행하는 컴파일 된 코드 만 출력하는 것처럼 보입니다. 컴파일 된 자바 코드가 어떤 모양인지는 모르겠지만, 이런 종류의 어셈블리 또는 기본 중 하나를 떠올리게합니다. 극단적으로 오래된 Cavaj는 일반 Java로 다시 변환합니다. – jonescb

+0

오 예. 미안 내 실수. 그렇다면 거기에 프리웨어의 부하가 있습니다. Jad는 제가 전에 성공한 무언가입니다. Cavaj 제품에 대한 제 관심사는 Windows에서만 실행되며 Java가 설치 될 필요가 없다고 주장하는 것입니다. 이것은 네이티브 프로그램이라는 것을 의미합니다. 네이티브 프로그램은 괜찮을 수도 있고 그렇지 않을 수도 있습니다. – dty

관련 문제