JAVA编译/执行2.Java1包命令行

JAVA编译/执行2.Java1包命令行,java,compilation,packages,execution,Java,Compilation,Packages,Execution,这是我的两个.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.InputStr

这是我的两个.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;
导入java.awt.Graphics2D;
导入java.awt.image.buffereImage;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.IOException;
导入java.io.InputStream;
导入java.net.URL;
导入javax.imageio.imageio;
公共类BufferedImageSplitter{
受保护的缓冲图像;
受保护的BuffereImage[]分割图像;
公共静态缓冲区图像拆分器getInstance(字符串路径)引发IOException、FileNotFoundException{
文件=新文件(路径);
FileInputStream fis=新的FileInputStream(文件);
返回新的BufferedImageSplitter(fis);
}
公共缓冲区图像拆分器(InputStream图像)引发IOException{
this.image=ImageIO.read(图像);
}
公共缓冲区图像拆分器(FileInputStream图像)引发IOException{
this.image=ImageIO.read(图像);
}
公共缓冲区图像拆分器(文件图像)引发IOException{
this.image=ImageIO.read(图像);
}
公共缓冲区图像拆分器(URL图像)引发IOException{
this.image=ImageIO.read(图像);
}
公共缓冲区映像[]拆分(整数高度){
int width=this.image.getWidth();
int rows=(int)Math.ceil((float)this.image.getHeight()/(float)height);
this.splittedImages=new BufferedImage[rows];//要保存的图像数组
//图像块
对于(int count=0;count
第二个包含主类:

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);

    }
}
package net.utils.image;
导入java.io.*;
公共类主拆分器{
公共静态void main(字符串[]args)引发IOException{
//File=new
//文件(“C:\\Documents and Settings\\Administrator\\Mis documentos\\b12.png”);
//FileInputStream fis=新的FileInputStream(文件);
//BufferedImageSplitter imageSplitter=新的BufferedImageSplitter(fis);
如果(参数长度!=3){
System.out.println(“Parametros incorrectos.Inserta”
+ "   ");
系统出口(0);
}
字符串路径_img=args[0];
字符串格式=args[1];
字符串名称_img=args[2];
BuffereImage Splitter imageSplitter=BuffereImage Splitter
.getInstance(路径\ img);
图像分割器。分割(500);
保存文件(格式、名称\u img);
}
}
这就是我迄今为止所做的尝试,但没有成功:

我的文件结构是:/root,在那里我有两个

1) 1.1 javac*.java(它可以正确编译) 1.2 java主拆分器 线程“main”java.lang.NoClassDefFoundError中出现异常:MainSplitter(错误名称:net/utils/image/MainSplitter)

2) 2.1 javac-cp.*。JAVA 2.2 java cp.*。java
同样的错误

3) 3.1 javac*.java 3.2 java net.utils.image.MainSplitter.main 错误:无法找到或加载主类net.utils.image.MainSplitter.main

4) 我已经对文件进行了重新构造,并将这两个.java都放在以下目录中:root/net/utils/image,然后:

4.1 javac-cp*JAVA java-cp。主分离器 还是第一个错误:线程“main”java.lang.NoClassDefFoundError:mainSpllitter中的异常(错误名称:net/utils/image/mainSpllitter)

我可能有一个cp的问题,但不知道,可能很容易,但我卡住了,不能执行它。
提前感谢您,如有任何帮助,我将不胜感激。

您的java文件需要位于反映软件包名称的目录中:

net/utils/image/MainSplitter.java

$ javac net/utils/image/*.java

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

您好,首先编译
MainSplitter
。 然后检查您是否拥有容纳两个类的相同包。
我希望这能帮上忙。

非常感谢您,我已经完成了,它可以在根目录下工作。这个-cp。因为它适用于当前目录中的.class,不是吗?再次感谢你