2011-10-05 2 views
4

나는 최근에 내가 작업하고 있던 프로젝트의 netbeans 프로젝트 폴더를 잃어 버렸다. 어쨌든 내가 근무하는 회사의 서버 어딘가에, 나는 그것을 배치했다. 그래서 나는 (잘하면) 여전히 .war 파일을 가질 수 있다는 것을 의미합니다..war 파일에서 내 Java 소스 코드를 가져 오시겠습니까?

이 .war 파일을 '압축 해제'하고 그 당시 작업하고 있던 .java 소스 파일을 다시 가져올 수 있습니까?

미리 감사드립니다.

+8

... 소스 제어 ... – JRL

+0

WAR 파일을 쉽게 풀 수 있습니다. 이것은 특정 레이아웃의 Zip 파일 일뿐입니다. Mac 또는 Linux에서는 파일의 "압축 해제"를 호출 할 수 있습니다. 불행하게도, 그것은 소스 파일, 단지 컴파일 된 .class 파일을 얻지 못하기 때문에 자바 코드를 읽을 수 있도록 디 컴파일러가 필요하며 원본 소스 코드와 같지는 않습니다. –

+3

버전 관리를 의미합니까? 지옥 예, 제 경력 초기에 배웠던 소중한 교훈입니다. – Tiwaz89

답변

2

전쟁에서 * .class 파일 만 가져옵니다 (전쟁의 이름을 zip으로 바꾸고 압축 해제 도구 사용).

그런 다음 디 컴파일 할 수 있습니다.

이 부분은 related question for some suggestions입니다.

9

.java 소스가 WAR에 없거나 없어야하는 경우 JAD와 같은 도구를 사용하여 디 컴파일하는 추가 단계를 수행해야합니다.

Subversion이나 Git 또는 Mercurial과 같은 버전 제어 시스템을 설정하기에 좋은 시점이므로 다시는 발생하지 않습니다. 프로젝트에서 일하는 유일한 개발자 인 경우에도 소스 코드 관리를 사용하는 습관을 가지십시오.

+0

아 아. 소스 코드를 디 컴파일 한 후 어떻게 생겼을까요? 엉망이되거나 여전히 들여 쓰기가 좋을까요? – Tiwaz89

+0

아마도 당신이 원하는 것이 아닙니다. 나는 말할 수 없다. 하나 시도해보십시오. – duffymo

+0

나는 osurce를 decompiled 전에 가지고 있고, 그것은 지느러미에서 나왔다. (내가 JAD도 사용했다고 생각한다.) VCS 사용과 함께 비 생산 서버 (예 : 스테이징/개발 서버)로 배포 할 때 dev war 파일로 소스를 압축하는 습관이 있습니다. 얼마나 많은 시간이 나를 구했는지 말할 수 없습니다. –

2

짧은 답변 : 제

은 약간 더 이상 대답 : Java decompilers을 찾아,하지만 그들은 당신에게 당신의 넷빈즈 프로젝트 폴더를 제공하지 않습니다.

+0

다음은 작동해야합니다. 1 - .war 파일의 압축을 풉니 다. 2 - 클래스 파일을 디 컴파일합니다. 3 - 기존 소스에서 netbeans 프로젝트를 다시 만듭니다. 맞아, 맞지? – Tiwaz89

0

전쟁을 만드는 동안 소스 파일을 내 보낸 경우 가져올 수 있다고 가정합니다. 그렇지 않으면, JAD는 당신의 유일한 희망이기도합니다.

0

클래스 파일 및 기타 등록 정보 파일 만 얻을 수있는 war 파일의 압축을 해제 할 수 있습니다. 그런 다음 Java 디 컴파일러를 사용하여 소스 코드를 확인하면 실제로 잘 작동합니다 (권장하지 않음).

또한 JD없이 속성 파일을 변경할 수 있으며 속성 파일을 변경하고 war 파일로 다시 압축하면됩니다. 작동합니다.

그러나 SVN 또는 TFS에서 소스 코드를 유지하거나 로컬 시스템의 버전 ​​번호가있는 여러 복사본을 유지하는 것이 좋습니다.

관련 문제