先看你反编译的java类有没有正常在jdk1.5环境下生成class文件?
如果生成了,那直接使用eclipse的export jar功能就可以导出jar文件了。

解决方案 »

  1.   

    没有生成,不知道怎么编译成class文件。。
      

  2.   

    eclipse有一个目录存放class文件的,一般在工程的跟目录下面的bin目录下面,你进去看看,看是否有class文件。
    如果没有class文件,看你反编译出来的java文件是否有报错的?
      

  3.   

    eclipse有一个目录存放class文件的,一般在工程的跟目录下面的bin目录下面,你进去看看,看是否有class文件。
    如果没有class文件,看你反编译出来的java文件是否有报错的?

    我知道什么原因了,源代码没有放到src下面。
    还有一个问题,就是有的方法反编译处理是错误的,比如下面这一个,反编译是这样的,jd-gui里就用红色字体注释着error。// ERROR //
      protected MessageResult sendPost(String path, boolean enableSSL, byte[] data) { // Byte code:
        //   0: aconst_null
        //   1: astore 4
        //   3: aconst_null
        //   4: astore 5
        //   6: aconst_null
        //   7: astore 6
        //   9: iload_2
        //   10: ifeq +7 -> 17
        //   13: aload_0
        //   14: invokevirtual 74 cn/jpush/api/HttpPostClient:initSSL ()V
        //   17: new 77 java/net/URL
        //   20: dup
        //   21: aload_1
        //   22: iload_2
        //   23: invokestatic 79 cn/jpush/api/BaseURL:getUrlForPath (Ljava/lang/String;Z)Ljava/lang/String;
        //   26: invokespecial 85 java/net/URL:<init> (Ljava/lang/String;)V
        //   29: astore 7
        //   31: aload 7
        //   33: invokevirtual 88 java/net/URL:openConnection ()Ljava/net/URLConnection;
        //   36: checkcast 92 java/net/HttpURLConnection
        //   39: astore 4
        //   41: aload 4
        //   43: sipush 20000
        //   46: invokevirtual 94 java/net/HttpURLConnection:setConnectTimeout (I)V
        //   49: aload 4
        //   51: sipush 30000
        //   54: invokevirtual 98 java/net/HttpURLConnection:setReadTimeout (I)V
        //   57: aload 4
        //   59: iconst_0
        //   60: invokevirtual 101 java/net/HttpURLConnection:setUseCaches (Z)V
        //   63: aload 4
        //   65: iconst_1
        //   66: invokevirtual 105 java/net/HttpURLConnection:setDoOutput (Z)V
        //   69: aload 4
        //   71: ldc 108
        //   73: invokevirtual 110 java/net/HttpURLConnection:setRequestMethod (Ljava/lang/String;)V
        //   76: aload 4
        //   78: ldc 113
        //   80: ldc 115
        //   82: invokevirtual 117 java/net/HttpURLConnection:setRequestProperty (Ljava/lang/String;Ljava/lang/String;)V
        //   85: aload 4
        //   87: ldc 121
        //   89: ldc 8
        //   91: invokevirtual 117 java/net/HttpURLConnection:setRequestProperty (Ljava/lang/String;Ljava/lang/String;)V
        //   94: aload 4
        //   96: ldc 123
        //   98: ldc 125
        //   100: invokevirtual 117 java/net/HttpURLConnection:setRequestProperty (Ljava/lang/String;Ljava/lang/String;)V
        //   103: aload 4
        //   105: ldc 127
        //   107: aload_3
        //   108: arraylength
        //   109: invokestatic 129 java/lang/String:valueOf (I)Ljava/lang/String;
        //   112: invokevirtual 117 java/net/HttpURLConnection:setRequestProperty (Ljava/lang/String;Ljava/lang/String;)V
        //   115: new 133 java/io/DataOutputStream
        //   118: dup
        //   119: aload 4
        //   121: invokevirtual 135 java/net/HttpURLConnection:getOutputStream ()Ljava/io/OutputStream;
        //   124: invokespecial 139 java/io/DataOutputStream:<init> (Ljava/io/OutputStream;)V
        //   127: astore 5
        //   129: aload 5
        //   131: aload_3
        //   132: invokevirtual 142 java/io/DataOutputStream:write ([B)V
        //   135: aload 5
        //   137: invokevirtual 146 java/io/DataOutputStream:flush ()V
        //   140: aload 4
        //   142: invokevirtual 149 java/net/HttpURLConnection:getResponseCode ()I
        //   145: sipush 200
        //   148: if_icmpne +92 -> 240
        //   151: aload 4
        //   153: invokevirtual 153 java/net/HttpURLConnection:getInputStream ()Ljava/io/InputStream;
        //   156: astore 8
        //   158: new 157 java/lang/StringBuffer
        //   161: dup
        //   162: invokespecial 159 java/lang/StringBuffer:<init> ()V
        //   165: astore 9
        //   167: new 160 java/io/InputStreamReader
        //   170: dup
        //   171: aload 8
        //   173: ldc 8
        //   175: invokespecial 162 java/io/InputStreamReader:<init> (Ljava/io/InputStream;Ljava/lang/String;)V
        //   178: astore 10
        //   180: sipush 1024
        //   183: newarray char
        //   185: astore 11
        //   187: goto +14 -> 201
        //   190: aload 9
        //   192: aload 11
        //   194: iconst_0
        //   195: iload 12
        //   197: invokevirtual 165 java/lang/StringBuffer:append ([CII)Ljava/lang/StringBuffer;
        //   200: pop
        //   201: aload 10
        //   203: aload 11
        //   205: invokevirtual 169 java/io/InputStreamReader:read ([C)I
        //   208: dup
        //   209: istore 12
        //   211: ifgt -21 -> 190
        //   214: ldc 173
        //   216: aload 9
        //   218: invokevirtual 175 java/lang/StringBuffer:toString ()Ljava/lang/String;
        //   221: invokevirtual 179 java/lang/String:equals (Ljava/lang/Object;)Z
        //   224: ifne +119 -> 343
        //   227: aload 9
        //   229: invokevirtual 175 java/lang/StringBuffer:toString ()Ljava/lang/String;
        //   232: invokestatic 183 cn/jpush/api/MessageResult:fromValue (Ljava/lang/String;)Lcn/jpush/api/MessageResult;
        //   235: astore 6
        //   237: goto +106 -> 343
        //   240: new 187 java/lang/Exception
        //   243: dup
        //   244: new 189 java/lang/StringBuilder
        //   247: dup
        //   248: ldc 191
        //   250: invokespecial 193 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
        //   253: aload 4
        //   255: invokevirtual 149 java/net/HttpURLConnection:getResponseCode ()I
        //   258: invokevirtual 194 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder;
        //   261: invokevirtual 197 java/lang/StringBuilder:toString ()Ljava/lang/String;
        //   264: invokespecial 198 java/lang/Exception:<init> (Ljava/lang/String;)V
        //   267: athrow
        //   268: astore 7
        //   270: aload 7
        //   272: invokevirtual 199 java/lang/Exception:printStackTrace ()V
        //   275: aload 5
        //   277: ifnull +18 -> 295
        //   280: aload 5
        //   282: invokevirtual 200 java/io/DataOutputStream:close ()V
        //   285: goto +10 -> 295
        //   288: astore 14
        //   290: aload 14
        //   292: invokevirtual 203 java/io/IOException:printStackTrace ()V
        //   295: aload 4
        //   297: ifnull +76 -> 373
        //   300: aload 4
        //   302: invokevirtual 206 java/net/HttpURLConnection:disconnect ()V
        //   305: goto +68 -> 373
        //   308: astore 13
        //   310: aload 5
        //   312: ifnull +18 -> 330
        //   315: aload 5
        //   317: invokevirtual 200 java/io/DataOutputStream:close ()V
        //   320: goto +10 -> 330
        //   323: astore 14
        //   325: aload 14
        //   327: invokevirtual 203 java/io/IOException:printStackTrace ()V
        //   330: aload 4
        //   332: ifnull +8 -> 340
        //   335: aload 4
        //   337: invokevirtual 206 java/net/HttpURLConnection:disconnect ()V
        //   340: aload 13
        //   342: athrow
        //   343: aload 5
        //   345: ifnull +18 -> 363
        //   348: aload 5
        //   350: invokevirtual 200 java/io/DataOutputStream:close ()V
        //   353: goto +10 -> 363
        //   356: astore 14
        //   358: aload 14
        //   360: invokevirtual 203 java/io/IOException:printStackTrace ()V
        //   363: aload 4
        //   365: ifnull +8 -> 373
        //   368: aload 4
        //   370: invokevirtual 206 java/net/HttpURLConnection:disconnect ()V
        //   373: aload 6
        //   375: areturn
        //
        // Exception table:
        //   from to target type
        //   9 268 268 java/lang/Exception
        //   280 285 288 java/io/IOException
        //   9 275 308 finally
        //   315 320 323 java/io/IOException
        //   348 353 356 java/io/IOException } 
      

  4.   

    eclipse有一个目录存放class文件的,一般在工程的跟目录下面的bin目录下面,你进去看看,看是否有class文件。
    如果没有class文件,看你反编译出来的java文件是否有报错的?
    还有的如下,标注11行的这一句报错ClassName.this:/*    */ package cn.jpush.api;
    /*    */ 
    /*    */ import com.google.gson.Gson;
    /*    */ import java.util.HashMap;
    /*    */ import java.util.Map;
    /*    */ 
    /*    */ public class CustomMessageParams extends MessageParams
    /*    */ {
    /* 42 */   private CustomMsgContent msgContent = new CustomMsgContent();
    /*    */ 
    /* 44 */   public CustomMsgContent getMsgContent() { return this.msgContent; }
    /*    */ 
    /*    */ 
    /*    */   public class CustomMsgContent extends MessageParams.MsgContent
    /*    */   {
    /*    */     private String contentType;
    /*    */     private Map<String, Object> extra;
    /*    */ 
    /*    */     public CustomMsgContent()
    /*    */     {
    /* 11 */       super(CustomMessageParams.this);
    /*    */ 
    /* 13 */       this.contentType = "";
    /*    */ 
    /* 15 */       this.extra = new HashMap();
    /*    */     }
    /*    */     public String getContentType() {
    /* 18 */       return this.contentType;
    /*    */     }
    /*    */     public void setContentType(String contentType) {
    /* 21 */       this.contentType = contentType;
    /*    */     }
    /*    */     public Map<String, Object> getExtra() {
    /* 24 */       return this.extra;
    /*    */     }
    /*    */     public void setExtra(Map<String, Object> extra) {
    /* 27 */       this.extra = extra;
    /*    */     }
    /*    */ 
    /*    */     public String toString() {
    /* 31 */       Gson gson = new Gson();
    /* 32 */       Map params = new HashMap();
    /* 33 */       params.put("title", getTitle());
    /* 34 */       params.put("message", getMessage());
    /* 35 */       params.put("content_type", getContentType());
    /* 36 */       params.put("extras", getExtra());
    /*    */ 
    /* 38 */       return StringUtils.encodeParam(gson.toJson(params));
    /*    */     }
    /*    */   }
    /*    */ }
      

  5.   

    eclipse有一个目录存放class文件的,一般在工程的跟目录下面的bin目录下面,你进去看看,看是否有class文件。
    如果没有class文件,看你反编译出来的java文件是否有报错的?
    忽略6、7楼,我在github上找到了源码,1.5环境下编译,eclipse里导出jar包,但是引入到另一个工程中,运行的时候仍然提示版本问题。这是怎么搞的?
      

  6.   

    你的新工程的jdk多少呢?
    还有你的导出的jar中有没有查看里面的文件全不全?
      

  7.   

    解决了,我把Preferences-java-compiler里compiler compliance level改成了1.5再编译打包就好了,以前是1.6。好奇怪。
      

  8.   

    解决了,我把Preferences-java-compiler里compiler compliance level改成了1.5再编译打包就好了,以前是1.6。好奇怪。
    我在github上找到了源码,1.5环境下编译,eclipse里导出jar包  上面说的这个1.5 环境是什么环境呢?
    在eclipse里面,可以通过Preferences-java-compiler 降低jdk的编译时的版本低