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