0
여기서 java9/com/vipin/exp/A.class는 파일 I입니다. jdk 9와 다른 버전의 java8/com/vipin/exp/A.class에 사용하고 싶습니다. 이를 위해 다중 릴리스 항아리를 만들려고하지만 오류가 발생하는 중입니다. 이 명령에서 무엇이 잘못 되었습니까?다중 릴리스 jar를 작성하는 중 오류 "항목 : A.class, 내부 이름이 com.vipin.exp.A이고 이름이 일치하지 않습니다"
[email protected]:~/javacode$ pwd
/Users/XXXX/javacode
[email protected]:~/javacode$ javac --release 9 -d /Users/nitinkumarsharma/javacode/java9/ java9/com/vipin/exp/A.java
[email protected]:~/javacode$ javac --release 8 -d /Users/nitinkumarsharma/javacode/java8/ java8/com/vipin/exp/A.java
[email protected]:~/javacode$ jar -c -f vipin.jar -C java8/com/vipin/exp/ . --release 9 -C java9/com/vipin/exp/ .
entry: A.class, contains a class with internal name com.vipin.exp.A, names do not match
entry: META-INF/versions/9/A.class, contains a new public class not found in base entries
Warning: entry META-INF/versions/9/A.java, multiple resources with same name
invalid multi-release jar file vipin.jar deleted
내 디렉토리 구조는 다음과 같습니다 나는
[email protected]:~/javacode$ jar -c -f vipin.jar -C java8/com/vipin/exp/ .
[email protected]:~/javacode$ ls -ltr
total 12688
drwxr-xr-x 3 XXXX staff 102 Oct 17 18:02 java8
drwxr-xr-x 3 XXXX staff 102 Oct 17 20:00 java9
-rw-r--r-- 1 XXXX staff 968 Oct 18 17:05 vipin.jar
[email protected]:~/javacode$ jar -tvf vipin.jar
0 Wed Oct 18 17:05:08 IST 2017 META-INF/
61 Wed Oct 18 17:05:08 IST 2017 META-INF/MANIFEST.MF
430 Tue Oct 17 22:55:22 IST 2017 A.class
136 Tue Oct 17 22:49:20 IST 2017 A.java
나는 당신이'jar -c -f vipin.jar -C java8을 찾고 있다고 생각한다. --release 9 -C java9 .' - 그렇지 않으면 클래스 파일이 버전 섹션의 최상위 디렉토리 또는 최상위 디렉토리에 복사됩니다. –
@AlanBateman 명령을 실행 한 후 "파일 인수를 구문 분석하는 중 오류가 발생했습니다. 자세한 정보는'jar --help '를 시도하십시오." – Vipin
@AlanBateman 잘못된 명령을 이전에 어떻게 복사했는지 이해할 수 없지만 현재 사용할 수있는 명령은 현재 나를 위해 일했습니다. -C 옵션에 대한 나의 이해가 잘못되었습니다. – Vipin