没有主类的一堆java文件如何打包成jar?

时间:2022-03-03 12:25:54
原jar包是1.6下编译的,由于我们服务器java版本都是1.5,没法使用,我把jar包反编译后,想在1.5下重新打包,总是失败。打成的jar包解压后里面还是一堆java文件,不是class。
怎么办?

11 个解决方案

#1


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

#2


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

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

#3


引用 2 楼 kahnnash 的回复:
没有生成,不知道怎么编译成class文件。。

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

#4


用ant编译

#5


用javac编译

#6


引用 3 楼 magi1201 的回复:
Quote: 引用 2 楼 kahnnash 的回复:

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

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 } 

#7


引用 3 楼 magi1201 的回复:
Quote: 引用 2 楼 kahnnash 的回复:

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

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));
/*    */     }
/*    */   }
/*    */ }

#8


引用 3 楼 magi1201 的回复:
Quote: 引用 2 楼 kahnnash 的回复:

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

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


忽略6、7楼,我在github上找到了源码,1.5环境下编译,eclipse里导出jar包,但是引入到另一个工程中,运行的时候仍然提示版本问题。这是怎么搞的?

#9


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

#10


引用 9 楼 magi1201 的回复:
你的新工程的jdk多少呢?
还有你的导出的jar中有没有查看里面的文件全不全?

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

#11


引用 10 楼 kahnnash 的回复:
Quote: 引用 9 楼 magi1201 的回复:

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

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

我在github上找到了源码,1.5环境下编译,eclipse里导出jar包  上面说的这个1.5 环境是什么环境呢?
在eclipse里面,可以通过Preferences-java-compiler 降低jdk的编译时的版本低

#1


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

#2


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

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

#3


引用 2 楼 kahnnash 的回复:
没有生成,不知道怎么编译成class文件。。

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

#4


用ant编译

#5


用javac编译

#6


引用 3 楼 magi1201 的回复:
Quote: 引用 2 楼 kahnnash 的回复:

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

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 } 

#7


引用 3 楼 magi1201 的回复:
Quote: 引用 2 楼 kahnnash 的回复:

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

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));
/*    */     }
/*    */   }
/*    */ }

#8


引用 3 楼 magi1201 的回复:
Quote: 引用 2 楼 kahnnash 的回复:

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

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


忽略6、7楼,我在github上找到了源码,1.5环境下编译,eclipse里导出jar包,但是引入到另一个工程中,运行的时候仍然提示版本问题。这是怎么搞的?

#9


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

#10


引用 9 楼 magi1201 的回复:
你的新工程的jdk多少呢?
还有你的导出的jar中有没有查看里面的文件全不全?

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

#11


引用 10 楼 kahnnash 的回复:
Quote: 引用 9 楼 magi1201 的回复:

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

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

我在github上找到了源码,1.5环境下编译,eclipse里导出jar包  上面说的这个1.5 环境是什么环境呢?
在eclipse里面,可以通过Preferences-java-compiler 降低jdk的编译时的版本低