다중 페이지 tiff 이미지를 압축하는 netbeans에서 Java 응용 프로그램을 만듭니다. 이 프로세스의 일부는 다양한 jai, jai-imageIO 등의 이미지 라이브러리를 사용하는 것입니다. 특히, 이미지의 비트 심도를 얻는 방법이 있으며 빌드 된 .jar 파일을 사용하여 명령 줄을 통해 실행하면 IDE 및 로컬 컴퓨터에서 제대로 작동합니다. 다음과 같이 문제의 방법은 다음과 같습니다Java 코드는 IDE에서 작동하지만 다른 컴퓨터에서는 jar로 작동하지 않습니다.
private synchronized void setBitDepth() {
if(this.getImageInputStream() == null) {
System.out.println("ImageInputStreamFailure");
} try {
//System.out.println("Path: " + this.testTiff);
ImageInputStream testInStream = ImageIO.createImageInputStream(new File(this.testTiff)); //test
Iterator<ImageReader> readers = ImageIO.getImageReaders(testInStream);
ImageReader reader;
if(!readers.hasNext()) {
throw new IOException("Cant read format...");
} else {
reader = readers.next();
}
reader.setInput(this.getImageInputStream(), true, true);
this.bitDepth = reader.getImageTypes(0).next().getColorModel().getPixelSize();
reader.dispose();
} catch(IOException e) {
e.printStackTrace();
}
}
내가 jar 파일에 내 프로젝트를 패키징하고 그것을 자바가 다른 컴퓨터에서 실행하는 경우는,이 메소드는 항상 IOException("Cant read format...")
예외가 발생합니다. 나는 하나의 jar 파일로 모든 외부 라이브러리를 정리하고 정리하고 여러 번 프로젝트를 재 작성하는 것을 포함하여 여러 가지 방법을 시도했지만 여러 플랫폼에서 작동하지 않는 이유를 알 수없는 것 같습니다. 자바가 설치되어 있어야합니다.
IDE에서 어떤 JDK를 사용하고 다른 컴퓨터에서 어떤 JDK를 사용합니까? 대부분 다른 머신의 JDK/JRE는 이전 버전이며 해당 이미지 형식을 읽는 라이브러리가 없습니다. –
IDE가있는 시스템에서 jre7 및 jdk1.7.0_45를 사용합니다. jar6, jre7 및 jdk1.7.0_05가 설치된 jar6을 실행하려고하는 테스트 시스템에서 jar6을 실행하려고합니다. 내가 타겟 머신에 최신 JDK를 설치해야 할 것인가? – user1806716
모든 테스트 머신에 오류가 표시됩니까? –