有一个现成的jsp网站,弄了一个星期终于弄懂什么东西在那里什么东西在那里,但是对于某些错误还是无法解决,请各位朋友帮忙,紧急!!万分感激!!问题是:有一个.class文件,我把它反编后是个.java的文件,修改了里面一些,到现在要变会.class就不会了参考了很多办法,但是还是不行~~由于时间紧迫~~希望大哥大姐们帮个忙~~~实在是无能为力了~~代码如下:testUpload.classpackage com.souhom.struts.servlet;import com.jspsmart.upload.Files;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
import com.souhom.struts.systemConfig;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;public class testUpload extends HttpServlet
{
  public String doPost(HttpServletRequest req, HttpServletResponse resp, PageContext pageContent, String saveFolder, String type)
    throws ServletException, IOException
  {
    PrintWriter out = resp.getWriter();
    String filePath = ""; String filePath2 = "";
    SmartUpload su = new SmartUpload();
    String s = null;
    try {
      su.initialize(pageContent);
      int count = 0;
      try {
        su.upload();
      }
      catch (SmartUploadException e)
      {
        e.printStackTrace();
      }      for (int i = 0; i < su.getFiles().getCount(); ++i) {
        com.jspsmart.upload.File file = su.getFiles().getFile(i);
        String fileExt = file.getFileExt();
        long fileSize = file.getSize();
        if (!(systemConfig.ext.contains(fileExt))) {
          out.print("文件格式不对!允许上传格式为:" + systemConfig.ext + "&nbsp;&nbsp;<a href='javaScript:window.history.back();'>从新上传</a>");
          filePath2 = null;
          file = null;
          break;
        }
        if (type.equals("pic")) {
          if (fileSize > systemConfig.picSize) {
            out.print("图片太大!文件必须小于:" + (systemConfig.picSize / 1024L) + "KB" + "&nbsp;&nbsp;<a href='javaScript:window.history.back();'>从新上传</a>");
            filePath2 = null;
            file = null;
            break;
          }
        } else if ((type.equals("vido")) && 
          (fileSize > systemConfig.videoSize)) {
          out.print("视频太大!文件必须小于:" + (systemConfig.videoSize / 1024L) + "KB" + "&nbsp;&nbsp;<a href='javaScript:window.history.back();'>从新上传</a>");
          filePath2 = null;
          file = null;
          break;
        }        if (file.isMissing()) continue;        String year = String.valueOf(Calendar.getInstance().getTime().getYear());
        String date = String.valueOf(Calendar.getInstance().getTime().getDate());
        String month = String.valueOf(Calendar.getInstance().getTime().getMonth());
        String hours = String.valueOf(Calendar.getInstance().getTime().getHours());
        String minuts = String.valueOf(Calendar.getInstance().getTime().getMinutes());
        String second = String.valueOf(Calendar.getInstance().getTime().getSeconds());
        String tempString = year + "_" + month + "_" + date + "_" + hours + "_" + minuts + "_" + second;        filePath = java.io.File.separator + saveFolder + java.io.File.separator + tempString + "." + file.getFileExt();
        filePath2 = tempString + "." + file.getFileExt();
        int tempCount = 0;
        System.out.println(filePath);
        try
        {
          file.saveAs(filePath, 1);
          s = s + "保存了";
        }
        catch (SmartUploadException e) {
          e.printStackTrace();
          s = s + e.getLocalizedMessage();
          s = s + "异常了";
          s = s + e.getMessage();
        }
        ++count;
      }      if (count != 0) break label761;
      filePath2 = null;
      label770: label761: out.print("请先点浏览选择您要上传的文件:&nbsp;&nbsp;<a href='javaScript:window.history.back();'>返回</a>");
    }
    catch (OutOfMemoryError me) {
      filePath2 = null;
      if (type.equals("pic")) {
        out.print("对不起,您的文件文件太大,不允许上传,文件必须小于:" + (systemConfig.picSize / 1024L) + "KB&nbsp;&nbsp;<a href='javaScript:window.history.back();'>返回</a>"); break label770:
      }
      out.print("对不起,您的文件文件太大,不允许上传,文件必须小于:" + (systemConfig.videoSize / 1024L) + "KB&nbsp;&nbsp;<a href='javaScript:window.history.back();'>返回</a>");
    }
    finally {
      su = null;
      out = null;
    }
    System.gc();
    return filePath2;
  }
}
我现在想把限制上传资料格式的那一段条件代码删掉,然后再生成一个新的.class文件因为有些相机拍下来的图片用acdsee批量修改尺寸大小之后,上传时出现这个格式错误(图片只有几十K)万分感谢万分感谢!!!

解决方案 »

  1.   

    既然工程可以跑起来,那编译就肯定可以了。
    1.在eclipse下建个工程,把web工程用到的jar都放到工程的classpath里。
    2.在工程中建立一个package:com.souhom.struts.servlet,然后在这个包下建Class:testUpload。把你改好的代码全部copy进去。记住,替换的时候是ctrl+a然后ctrl+v。
    3.ctrl+s。编译完成。到bin目录下找到那个class.
    4.解压以前的那个jar,用你在第三步得到的class文件替换以前的class文件。重新打包。
      

  2.   

    不是~是在jd-gui里看代码~然后复制出来
      

  3.   

    可以用Jdk直接编译,这需要你配置电脑的环境变量,配好了直接在cmd打开命令框里编译就可以了!
    javac D:\*.java
    编译成功就可以看到*.class文件了
      

  4.   

    bayougeng  我先下个eclipse  然后一步一步来~不懂我再请教你~~谢谢!
      

  5.   

    其实,不用那么费事,你要是没有eclipse,直接在命令行下也是可以编译的。
      

  6.   

    只不过用eclipse更容易操作。
    算,你还是下个eclipse按照我说的步骤做吧。你import的包太多,要不我就帮你编译了。
      

  7.   

    把原代码拷贝到Eclipse中编译,会得到.class文件
      

  8.   

    package com.souhom.struts.servlet;import com.jspsmart.upload.Files;
    import com.jspsmart.upload.SmartUpload;
    import com.jspsmart.upload.SmartUploadException;
    import com.souhom.struts.systemConfig; 上面这些jar,你要给我。
    别忘了com.souhom.struts.servlet这个所在的jar。
      

  9.   

    确定没有错,把所的包提出来,重新写一个有main函数的类,
    在那里把它new 出来就行了萨!
      

  10.   

    不关怎么样,。class文件就是靠jdk编译出来的。