这是我的两个.java,第一个:
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);
}
}到目前为止,我一直在努力,但没有成功:
我的文件结构是: /root,这里有两个.java
1) 1.1javac *.java (它编译右)1.2java MainSplitter异常在线程“java.lang.NoClassDefFoundError: MainSplitter”中(错误名称:net/utils/java.lang.NoClassDefFoundError/MainSplitter)
2) 2.1javac -cp。*.java 2.2java cp .*.java
Again the same error3) 3.1javac *.java 3.2 java java net.utils.image.MainSplitter.main错误:找不到或加载主类net.utils.image.MainSplitter.main
4)我对文件进行了重组,并将两个.java放在这个目录中: root/net/utils/image,然后:
4.1javac -cp .*java -cp。MainSplitter第一个错误:线程“java.lang.NoClassDefFoundError”中的异常: MainSplitter (错误名称: net/utils/image/MainSplitter)。
我可能对cp有问题,但不知道,可能很容易,但我被困住了,无法执行。预先谢谢你,我很感谢你的帮助。
发布于 2014-04-15 11:15:45
您的java文件需要位于反映包名的目录中:
net/utils/image/MainSplitter.java
$ javac net/utils/image/*.java
$ java -cp . net.utils.image.MainSplitter发布于 2014-04-15 11:16:33
嗨,你首先编译了MainSplitter。然后检查您有相同的包,其中包含您的两个类。我希望这能帮上忙。
https://stackoverflow.com/questions/23082011
复制相似问题