I have a 메이븐 프로젝트 '를' 대상 / lib 폴더에 있는 모든 jar 파일 및 복제본에 생성하는지 종속물과의. I want to execute 이 프로젝트를 client& # 39 의 시스템 (windows). 그래서 '수' 를 '' 폴더 및 모든 종속물과의 C:\xyz 복사됨 미project.자 C:\xyz\lib '폴더'. 이 프로젝트에서 client& # 39 의 명령 프롬프트 autoexec. 어떻게 합니까? Java - jar 미project.자 '찾았다' 폴더 '에서 사용 - cp lib*.jar C:\xyz 던지고 있지만 다음과 같은 오류가 발생했습니다.
Exception in thread "main" java.lang.NoClassDefFoundError: lib\commons-codec-1/3/jar
Caused by: java.lang.ClassNotFoundException: lib\commons-codec-1.3.jar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: lib\commons-codec-1.3.jar. Program will exit.
만약에 내가 모든 종속물과의 대체하십시오 classpath 에서 (java - cp lib\dep1.jar dep2.jar like ',') 의 문제를 없앨 것, 하지만 난 don& t want to do I have cx3-40 라이브러리보다는 이미 # 39 이 같은 향후 릴리스에서는 성장할 수 있습니다. 이렇게 할 수 있는 더 나은 방법이 있나요?
모두 사용할 수 없습니다 '와' - '' jar cp 명령줄의 참조 [java 문서용으로] (http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/java.html # - jar) 를 사용하는 경우 '' jar 것이라고 말했습니다. >. jar 파일은 소스가 모든 사용자 등급 및 기타 사용자 클래스 경로 설정이 무시됨.
이 같은 일이 할 수 있습니다.
"'java - cp lib*.jar;. 미프로젝트. 맹클레스 "'
이 ',' 인수, 해결할 수 있습니다. '를' cp 디이브이 java 명령줄이 버그. 또한 이것은 Windows 버전의 함장님이요 유념하십시오 Unix 에서 경로 분리자를 ':' 이 있다.
예를 들면, 슬라이드에서는 메이븐 조립품을 플러그인에는 공식 사이트 에서 사용할 수 있습니다. https://maven.apache.org/plugins/maven-assembly-plugin/usage.html
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>your main class</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
여러 가지 방법이 있습니다.
가장 가능성이 있는 [exec 플러그인에는] (http://mojo.codehaus.org/exec-maven-plugin/).
[조립품을 플러그인에는] 사용하여 모든 jar redboot*용 종속도 생성할 수도 있습니다 (https://maven.apache.org/plugins/maven-assembly-plugin/).
마지막으로, classpath 를 사용하여 파일을 생성할 수 있습니다. '종속성 항목이없습니다 classpath 옳다.
Java - jar 미project.자 cp lib*.jar '-' 이 작동하지 않습니다. Jar 것을 jar 가 있습니다.
So 의 경우 'commons-codec-1.3.jar'.
java - cp lib/commons-codec-1.3.jar lib/next_jar.jar ',' 와 드릴링됩니다.
다른 사용자의 모든 jar '연장' 디렉터리이고 너회의 JRE 를 될 수 있는 솔루션을 내놓고 있다. ) 은 독립 사용하는 경우 이 jre. 같은 JRE 를 사용하는 경우 두 개 이상의 응용 프로그램, 내가 < b> 못하며창조된 not< /b>;; 지금 추천합니까.