Java代码在IDE中工作,但在不同的计算机上不使用jar

Java代码在IDE中工作,但在不同的计算机上不使用jar,java,jar,javax.imageio,platform,Java,Jar,Javax.imageio,Platform,我正在netbeans中创建一个java应用程序,它将压缩多页tiff图像。该过程的一部分是使用各种jai、jai imageIO等图像库。特别是,我有一个方法可以获取图像的位深度,如果我使用build.jar文件通过命令行运行它,它在IDE和本地机器上运行良好。有关方法如下: private synchronized void setBitDepth() { if(this.getImageInputStream() == null) { System.ou

我正在netbeans中创建一个java应用程序,它将压缩多页tiff图像。该过程的一部分是使用各种jai、jai imageIO等图像库。特别是,我有一个方法可以获取图像的位深度,如果我使用build.jar文件通过命令行运行它,它在IDE和本地机器上运行良好。有关方法如下:

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();
       } 
    }
private synchronized void setBitDepth(){
if(this.getImageInputStream()==null){
System.out.println(“ImageInputStreamFailure”);
}试一试{
//System.out.println(“路径:“+this.testTiff”);
ImageInputStream testInStream=ImageIO.CreateMageInputStream(新文件(this.testTiff));//测试
迭代器读卡器=ImageIO.getImageReaders(testInStream);
图像阅读器;
如果(!readers.hasNext()){
抛出新IOException(“无法读取格式…”);
}否则{
reader=readers.next();
}
reader.setInput(this.getImageInputStream(),true,true);
this.bitDepth=reader.getImageTypes(0).next().getColorModel().getPixelSize();
reader.dispose();
}捕获(IOE异常){
e、 printStackTrace();
} 
}
如果我将我的项目打包成一个jar文件,并在另一台有java的机器上运行它,这个方法总是抛出
IOException(“无法读取格式…”)
异常。我尝试了多种补救措施,包括尝试将所有外部库打包到单个jar文件中,以及多次清理和重建我的项目,但我似乎不明白为什么这在安装了java的多个平台上都不起作用。

也许这与库有关,哪个不是SDK的一部分?

您在IDE上使用什么JDK,在其他机器上使用哪个JDK?其他机器上的JDK/JRE很可能是较旧的,没有用于读取该图像格式的库。在我试图运行jar的测试机器上,我安装了jre6、jre7和jdk1.7.005。我想我应该在目标机器上安装最新的JDK?所有测试机器上都会出现错误吗?既然库捆绑在自己的安装程序包中,我该如何在我的应用程序中使用Inno Setup Compiler之类的东西来安装它?你的问题与JAI有关?JAI是否已连接到您的应用程序包?