2014-04-15 1 views
0

이 내 두 된 .java의 fisrt 하나 :자바./컴파일 실행이 된 .java 1 개 패키지 명령 줄

package net.utils.image; 

import java.awt.Graphics2D; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.URL; 

import javax.imageio.ImageIO; 

public class BufferedImageSplitter { 

    protected BufferedImage image; 
    protected BufferedImage[] splittedImages; 

    public static BufferedImageSplitter getInstance(String path) throws IOException, FileNotFoundException { 
     File file = new File(path); 
     FileInputStream fis = new FileInputStream(file); 
     return new BufferedImageSplitter(fis); 
    } 

    public BufferedImageSplitter(InputStream image) throws IOException { 
     this.image = ImageIO.read(image); 
    } 

    public BufferedImageSplitter(FileInputStream image) throws IOException { 
     this.image = ImageIO.read(image); 
    } 

    public BufferedImageSplitter(File image) throws IOException { 
     this.image = ImageIO.read(image); 
    } 

    public BufferedImageSplitter(URL image) throws IOException { 
     this.image = ImageIO.read(image); 
    } 

    public BufferedImage[] split(int height) { 
     int width = this.image.getWidth(); 
     int rows = (int) Math.ceil((float) this.image.getHeight()/(float) height); 

     this.splittedImages = new BufferedImage[rows]; // Image array to hold 
                 // image chunks 
     for (int count = 0; count < rows; count++) { 
      Graphics2D gr = null; 
      int minHeightOffset = height * count; 
      int maxHeightOffset = Math.min(image.getHeight() , height * count + height); 
      int splitHeight = maxHeightOffset - minHeightOffset; 

      // Initialize the image array with image chunks 
      this.splittedImages[count] = new BufferedImage(width, splitHeight, 
        this.image.getType()); 

      // draws the image chunk 
      gr = this.splittedImages[count].createGraphics(); 
      gr.drawImage(this.image, 0, 0, width, splitHeight, 0, 
        minHeightOffset, width, maxHeightOffset, null); 
      gr.dispose(); 

     } 
     return this.splittedImages; 
    } 

    public void saveFiles(String FormatName, String ImageName) throws IOException { 

     //writing mini images into image files 
     for (int i = 0; i < this.splittedImages.length; i++) { 

      String padding = String.format("%03d", i); 


      ImageIO.write(this.splittedImages[i], FormatName, new File(ImageName + padding + "." + FormatName)); 
     } 
    } 

} 

그리고 메인 클래스가 들어있는 두 번째 :

package net.utils.image; 

import java.io.*; 

public class MainSplitter { 
    public static void main(String[] args) throws IOException { 

     // File file = new 
     // File("C:\\Documents and Settings\\Administrador\\Mis documentos\\b12.png"); 
     // FileInputStream fis = new FileInputStream(file); 
     // BufferedImageSplitter imageSplitter = new BufferedImageSplitter(fis); 

     if (args.length != 3) { 

      System.out.println("Parametros incorrectos. Inserta" 
        + " <path imagen> <formato imagen> <nombre imagen>"); 
      System.exit(0); 

     } 

     String path_img = args[0]; 

     String format = args[1]; 

     String name_img = args[2]; 

     BufferedImageSplitter imageSplitter = BufferedImageSplitter 
       .getInstance(path_img); 
     imageSplitter.split(500); 
     imageSplitter.saveFiles(format, name_img); 

    } 
} 

을 그리고 이것이 내가 성공하지 않고 지금까지 시도하는 것은 :/루트 거기 둘 다 된 .java에게

1) 1.1 javac의 * .j 있습니다

파일 내 구조는

AVA (그것이 바로 컴파일) 1.2 자바 MainSplitter 스레드 예외 "기본"java.lang.NoClassDefFoundError가 : MainSplitter (잘못된 이름 : 순/유틸/이미지/MainSplitter)

2) 2.1 javac의의 -cp. * .java 2.2 java cp. * 다시 된 .java
같은 오류

3) 3.1 javac의 * 된 .java 3.2 자바 자바 net.utils.image.MainSplitter.main 오류 : 찾거나 메인 클래스의 net.utils.image.MainSplitter를로드 할 수 없습니다 .main

4) 나는 파일의 구조 조정을 수행하고이 디렉토리에 두 된 .java를 뒀다 : 다음 루트/인터넷/유틸/이미지 :

4.1 javac의의 -cp을. * java java -cp. MainSplitter 첫 번째 오류 : "main"스레드의 예외 java.lang.NoClassDefFoundError : MainSplitter (잘못된 이름 : net/utils/image/MainSplitter).

cp에 문제가있을 수 있지만 실제로 알지는 못했지만, 아마도 쉽습니다. 그러나 멈추거나 실행할 수 없습니다.

net/utils/image/MainSplitter.java 

$ javac net/utils/image/*.java 

$ java -cp . net.utils.image.MainSplitter 

답변

2

자바 파일이 패키지 이름을 반영하는 디렉토리에 있어야 어떤 도움을 주셔서 감사합니다 것, 사전에 감사합니다. 그런 다음 두 클래스를 모두 보유하고있는 동일한 패키지가 있는지 확인하십시오. 이 도움이 되었기를 바랍니다.

+0

대단히 감사합니다. 루트 디렉토리에서 해보았습니다. -cp. 그것이 현재 디렉터리에있는 .class 않습니다 때문에 ¿? 다시 감사합니다 – aDoN

0

안녕 먼저 MainSplitter을 컴파일 : 내가

관련 문제