2016-07-29 1 views
0

私は最近、JAI-Java Advanced Imagingも使用していたGeoToolsで最初のプログラムを開始しました。次のエラーが見つかりましたjava.lang.ClassNotFoundException:it.geosolutions.jaiext.range.Range

Exception in thread "main" java.lang.NoClassDefFoundError: it/geosolutions/jaiext/range/Range at it.geosolutions.jaiext.crop.CropDescriptor.(CropDescriptor.java:62) at it.geosolutions.jaiext.crop.CropSpi.updateRegistry(CropSpi.java:56) at javax.media.jai.OperationRegistry.registerServices(OperationRegistry.java:2056) at javax.media.jai.ThreadSafeOperationRegistry.registerServices(ThreadSafeOperationRegistry.java:620) at javax.media.jai.OperationRegistry.initializeRegistry(OperationRegistry.java:373) at javax.media.jai.JAI.(JAI.java:566) at com.rgb.NDRI.createNDI(NDRI.java:17) at com.rgb.RGBSpliter.main(RGBSpliter.java:71) Caused by: java.lang.ClassNotFoundException: it.geosolutions.jaiext.range.Range at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 8 more

上記は私がコンソールで見るものです。私はジオツール14.4内のすべての瓶のうちどれが紛失しているのか分かりません。

コードは、私がここに不足しているRangeクラスを見つけ

package com.rgb; 
import java.awt.image.DataBuffer; 
import java.awt.image.RenderedImage; 
import java.awt.image.renderable.ParameterBlock; 
import java.io.File; 
import java.io.IOException; 

import javax.imageio.ImageIO; 
import javax.media.jai.*; 

public class NDRI { 
public void createNDI(String file1,String file2) throws IOException{ 
    // First we open the input images. We assume that each band is in a separate file. 
    // We assume that the first image is a near infrared one and that the second is 
    // a visible red image -- if you're using Landsat images, those will be bands 
    // 4 and 3, respectively. 
    PlanarImage iNIR = JAI.create("fileload",file1); 
    PlanarImage iVIS = JAI.create("fileload",file2); 
    // The pixels on those images must be processed as floating-point values! 
    ParameterBlock pbConvert = new ParameterBlock(); 
    pbConvert.addSource(iNIR); 
    pbConvert.add(DataBuffer.TYPE_DOUBLE); 
    PlanarImage NIR = JAI.create("format", pbConvert); 
    pbConvert = new ParameterBlock(); 
    pbConvert.addSource(iVIS); 
    pbConvert.add(DataBuffer.TYPE_DOUBLE); 
    PlanarImage VIS = JAI.create("format", pbConvert);  
    // Calculate the denominator (NIR-VIS). 
    ParameterBlock pbd = new ParameterBlock(); 
    pbd.addSource(NIR); 
    pbd.addSource(VIS); 
    PlanarImage denominator = JAI.create("subtract",pbd); 
    // Calculate the numerator (NIR+VIS). 
    ParameterBlock pbn = new ParameterBlock(); 
    pbn.addSource(NIR); 
    pbn.addSource(VIS); 
    PlanarImage numerator = JAI.create("add",pbd); 
    // Calculate the NDVI. 
    ParameterBlock pbNDVI = new ParameterBlock(); 
    pbNDVI.addSource(denominator); 
    pbNDVI.addSource(numerator); 
    RenderedImage ndvi = JAI.create("divide",pbNDVI); 
    String format="png"; 
    ImageIO.write(ndvi, format, new File("E:/ndvi_output.png")); 

    // Create a GUI to show it. 
    /* JFrame frame = new JFrame("NDVI image"); 
    DisplayNBImage disp = new DisplayNBImage(ndvi); 
    frame.add(new JScrollPane(disp)); 
    frame.pack(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true);*/ 

    /* PlanarImage iNIR = JAI.create("fileload","E:/output/image_red.png"); 
    PlanarImage iVIS = JAI.create("fileload","E:/output/image_green.png"); 
    // The pixels on those images must be processed as floating-point values! 
    ParameterBlock pbConvert = new ParameterBlock(); 
    pbConvert.addSource(iNIR); 
    pbConvert.add(DataBuffer.TYPE_DOUBLE); 
    PlanarImage NIR = JAI.create("format", pbConvert); 
    pbConvert = new ParameterBlock(); 
    pbConvert.addSource(iVIS); 
    pbConvert.add(DataBuffer.TYPE_DOUBLE); 
    PlanarImage VIS = JAI.create("format", pbConvert);  
    // Calculate the denominator (NIR-VIS). 
    ParameterBlock pbd = new ParameterBlock(); 
    pbd.addSource(NIR); 
    pbd.addSource(VIS); 
    PlanarImage denominator = JAI.create("subtract",pbd); 
    // Calculate the numerator (NIR+VIS). 
    ParameterBlock pbn = new ParameterBlock(); 
    pbn.addSource(NIR); 
    pbn.addSource(VIS); 
    PlanarImage numerator = JAI.create("add",pbd); 
    // Calculate the NDVI. 
    ParameterBlock pbNDVI = new ParameterBlock(); 
    pbNDVI.addSource(denominator); 
    pbNDVI.addSource(numerator); 
    PlanarImage ndvi = JAI.create("divide",pbNDVI); 
    double[][] matrix1 = {{ 1./3, 1./3, 1./3, 0 }}; 
    ParameterBlock pb = new ParameterBlock(); 
     pb.addSource(ndvi); 
     pb.add(matrix1);*/ 

    /* PlanarImage dst = (PlanarImage) JAI.create("bandCombine",pb); 



     BufferedImage img = dst.getAsBufferedImage(); 
    ImageIO.write(img, format, new File("E:/output/ndvi_output.png")); 
    System.out.println("ndvi gray scale image created");*/ 
} 
} 
+1

Mavenを使用して依存関係を管理していますか? – Rocherlee

+0

いいえ私はmavenを使用していません。私もjt-algebra.jarを追加しましたが、運はありません –

答えて