프로그래밍 방식 Class.getResourceAsStream()
과 FileOutputStream
를 사용하여 외부 라이브러리를 설치 자바를 사용할 수 있습니다. 도서관은 일반적으로 Java\lib\ext\
에 있습니다.
여기에 내가 접근 방법은 다음과 같습니다
내가의 사본을 배치 모든 JAR의 나는 .res
서브 패키지로 사용했다. 거기서 어디서나 복사 할 수 있습니다. 다른 작업을 수행하기 전에
private void installLibraries() {
new Thread() {
@Override
public void run() {
System.out.println("Checking for libraries");
File jre = new File(System.getProperty("java.home"));
File jar = new File(jre, "lib/ext/JAR_NAME.jar");
//Create more File objects that wrap your JAR's
try {
boolean added = false;
if (!jar.exists()) {
copyResource(jar, "JAR_NAME.jar");
added = true;
}
//Repeat for more JAR's
if (added) {
System.out.println("Libraries installed.");
} else {
System.out.println("Library check complete");
} catch (IOException ex) {
System.out.println("Library installation failed.");
ex.printStackTrace(System.out);
}
}
private void copyResource(File dest, String src) throws IOException {
System.out.println("Copying resource " + src + " to " + dest);
InputStream in = THIS_CLASS_NAME.class.getResourceAsStream("/YOUR_PACKAGE/res/" + src);
dest.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(dest);
byte[] buffer = new byte[1024];
int i = 0;
while ((i = in.read(buffer)) > 0) {
out.write(buffer, 0, i);
}
out.close();
in.close();
}
}.start();
}
실행이 방법은, 당신은 완전히 넷빈즈 당신을 제공하는 외부 JAR 파일을 무시하고 단지 하나를 배포 할 수 있습니다. 추가적으로이 방법을 사용하여 외부에 배포하는 것을 좋아하지 않는 javax.comm
을 설치했습니다. .dll 파일과 특성 파일이 함께 제공됩니다. 이 파일들은 똑같은 방법으로 설치할 수 있습니다 만,dll 파일은 Java\lib\
디렉토리에 있고 속성 파일은 Java\lib\
디렉토리 (\ext
폴더 아님)에 있어야합니다.
이 블로그 포스트를 사용해보세요 ... http://arunasujith.blogspot.com/2011/08/how-to-build-fat-jar-using-netbeans.html –