精华内容
下载资源
问答
  • JAVA解包冲突

    2020-10-18 17:51:01
    1,首先要找到是哪个包冲突了 多数是因为你当下引用的包引用了同一个包的不同版本 2,查看是那些包引用了同一个包的不同版本 使用cmd 进入项目目录 运行mvn dependency:tree 或在 idea额Terminal 中运行 mvn ...

    1,首先要找到是哪个包冲突了
    多数是因为你当下引用的包引用了同一个包的不同版本
    2,查看是那些包引用了同一个包的不同版本
    使用cmd 进入项目目录 运行mvn dependency:tree
    或在 idea额Terminal 中运行 mvn dependency:tree

    3,排除包

    <exclusions>
    	<exclusion>
    		<artifactId>guava</artifactId>
    		<groupId>com.google.guava</groupId>
    	</exclusion>
    </exclusions>
    
    展开全文
  • java解包 安卓和ios

    2019-04-22 16:48:34
    import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; public class APKUtil { private static final Logger LOGGER = ...

    1.安卓

    		<dependency>
                <groupId>net.dongliu</groupId>
                <artifactId>apk-parser</artifactId>
            </dependency>
    
    
    import net.dongliu.apk.parser.ApkFile;
    import net.dongliu.apk.parser.bean.ApkMeta;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.HashMap;
    import java.util.Map;
    
    public class APKUtil {
        private static final Logger LOGGER = LoggerFactory.getLogger(APKUtil.class);
    
    
        public static Map<String, String> getApkInfo(File file) {
            try {
                Map<String, String> apkInfo = new HashMap<>();
                ApkFile apkFile = new ApkFile(file);
                ApkMeta apkMeta = apkFile.getApkMeta();
                apkInfo.put("appName", apkMeta.getName());
                apkInfo.put("packName", apkMeta.getPackageName());
                apkInfo.put("versionCode", String.valueOf(apkMeta.getVersionCode()));
                apkInfo.put("versionName", apkMeta.getVersionName());
                return apkInfo;
            } catch (Exception e) {
                LOGGER.error("获取apk信息错误:", e);
                return null;
            }
        }
    
        public static void inputStreamToFile(InputStream ins, File file) {
            try {
                OutputStream os = new FileOutputStream(file);
                int bytesRead = 0;
                byte[] buffer = new byte[8192];
                while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
                    os.write(buffer, 0, bytesRead);
                }
                os.close();
                ins.close();
            } catch (Exception e) {
                LOGGER.error("转换文件错误:", e);
            }
        }
    }
    

    2.ios

    		<dependency>
                <groupId>com.googlecode.plist</groupId>
                <artifactId>dd-plist</artifactId>
            </dependency>
    
    
    import com.dd.plist.NSDictionary;
    import com.dd.plist.NSString;
    import com.dd.plist.PropertyListParser;
    
    import java.io.*;
    import java.util.Enumeration;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    
    
    public class IPAUtils {
        /**
         * 解压IPA文件,只获取IPA文件的Info.plist文件存储指定位置
         *
         * @param file           zip文件
         * @param unzipDirectory 解压到的目录
         * @throws Exception
         */
        private static File getZipInfo(File file, String unzipDirectory) throws Exception {
            // 定义输入输出流对象
            InputStream input = null;
            OutputStream output = null;
            File result = null;
            File unzipFile = null;
            ZipFile zipFile = null;
            try {
                // 创建zip文件对象
                zipFile = new ZipFile(file);
                // 创建本zip文件解压目录
                String name = file.getName().substring(0, file.getName().lastIndexOf("."));
                unzipFile = new File(unzipDirectory + "/" + name);
                if (unzipFile.exists()) {
                    unzipFile.delete();
                }
                unzipFile.mkdir();
                // 得到zip文件条目枚举对象
                Enumeration<? extends ZipEntry> zipEnum = zipFile.entries();
                // 定义对象
                ZipEntry entry = null;
                String entryName = null;
                String names[] = null;
                int length;
                // 循环读取条目
                while (zipEnum.hasMoreElements()) {
                    // 得到当前条目
                    entry = zipEnum.nextElement();
                    entryName = new String(entry.getName());
                    // 用/分隔条目名称
                    names = entryName.split("\\/");
                    length = names.length;
                    for (int v = 0; v < length; v++) {
                        if (entryName.endsWith(".app/Info.plist")) { // 为Info.plist文件,则输出到文件
                            input = zipFile.getInputStream(entry);
                            result = new File(unzipFile.getAbsolutePath() + "/Info.plist");
                            output = new FileOutputStream(result);
                            byte[] buffer = new byte[1024 * 8];
                            int readLen = 0;
                            while ((readLen = input.read(buffer, 0, 1024 * 8)) != -1) {
                                output.write(buffer, 0, readLen);
                            }
                            break;
                        }
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                if (input != null) {
                    input.close();
                }
                if (output != null) {
                    output.flush();
                    output.close();
                }
                // 必须关流,否则文件无法删除
                if (zipFile != null) {
                    zipFile.close();
                }
            }
    
            // 如果有必要删除多余的文件
            if (file.exists()) {
                file.delete();
            }
            return result;
        }
    
        /**
         * IPA文件的拷贝,把一个IPA文件复制为Zip文件,同时返回Info.plist文件 参数 oldfile 为 IPA文件
         */
        private static File getIpaInfo(File oldfile) throws IOException {
            try {
                int byteread = 0;
                String filename = oldfile.getAbsolutePath().replaceAll(".ipa", ".zip");
                File newfile = new File(filename);
                if (oldfile.exists()) {
                    // 创建一个Zip文件
                    InputStream inStream = new FileInputStream(oldfile);
                    FileOutputStream fs = new FileOutputStream(newfile);
                    byte[] buffer = new byte[1444];
                    while ((byteread = inStream.read(buffer)) != -1) {
                        fs.write(buffer, 0, byteread);
                    }
                    if (inStream != null) {
                        inStream.close();
                    }
                    if (fs != null) {
                        fs.close();
                    }
                    // 解析Zip文件
                    return getZipInfo(newfile, newfile.getParent());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 通过IPA文件获取Info信息
         */
        public static Map<String, String> getVersionInfo(File ipa) throws Exception {
    
            File file = getIpaInfo(ipa);
            Map<String, String> info = new HashMap<>();
            // 需要第三方jar包dd-plist
            NSDictionary rootDict = (NSDictionary) PropertyListParser.parse(file);
            // 应用包名
            NSString parameters = (NSString) rootDict.objectForKey("CFBundleIdentifier");
            info.put("CFBundleIdentifier", parameters.toString());
            // 应用名称
            parameters = (NSString) rootDict.objectForKey("CFBundleName");
            info.put("CFBundleName", parameters.toString());
            // 应用版本
            parameters = (NSString) rootDict.objectForKey("CFBundleVersion");
            info.put("CFBundleVersion", parameters.toString());
            // 应用展示的名称
            parameters = (NSString) rootDict.objectForKey("CFBundleDisplayName");
            info.put("CFBundleDisplayName", parameters.toString());
            // 应用所需IOS最低版本
            parameters = (NSString) rootDict.objectForKey("MinimumOSVersion");
            info.put("MinimumOSVersion", parameters.toString());
            parameters = (NSString) rootDict.objectForKey("CFBundleShortVersionString");
            info.put("CFBundleShortVersionString", parameters.toString());
            // 如果有必要,应该删除解压的结果文件
            file.delete();
            file.getParentFile().delete();
    
            return info;
        }
    }
    
    
    展开全文
  • PC电脑端JAVA软件解包处理软件JavaMagic
  • map接口中的put(k,v)方法中的v参数要求的是对象的,其一般用法:import java.util.*;public class TestMap {public static void main(String args[]) {Map m1 = new HashMap();m1.put("one",new Integer(1));//v参数...

    map接口中的put(k,v)方法中的v参数要求的是对象的,其一般用法:

    import java.util.*;

    public class TestMap {

    public static void main(String args[]) {

    Map m1 = new HashMap();

    m1.put("one",new Integer(1));//v参数是整形对象对象

    m1.put("two",new Integer(2));

    m1.put("three",new Integer(3));

    System.out.println(m1);

    if(m1.containsKey("two")) {

    int i = ((Integer)m1.get("two")).intValue();//强制转换为整形对象在得出值

    System.out.println(i);

    }

    }

    }

    利用自动打包和解包就很方便了:

    import java.util.*;

    public class TestMap {

    public static void main(String args[]) {

    Map m1 = new HashMap();

    m1.put("one", 1);//自动打包,注意与上面代码的区别

    m1.put("two", 2);

    m1.put("three", 3);

    System.out.println(m1)

    if(m1.containsKey("two")) {

    int i = (Integer)m1.get("two");//自动解包

    System.out.println(i);

    }

    }

    }

    题外话:强制转换的存在,导致了泛型的出现。

    展开全文
  • [Java]apktool解包

    千次阅读 2019-03-13 14:42:44
    java -jar apktool_2.3.1.jar d test.apk 如果存在之前旧目录,使用-f强制覆盖:java -jar apktool_2.3.1.jar d -f test.apk

    java -jar apktool_2.3.1.jar d test.apk

    如果存在之前旧目录,使用-f强制覆盖:java -jar apktool_2.3.1.jar d -f test.apk

     

     

    展开全文
  • This Java project depicts IP Traceback System called Flexible Deterministic Packet Marking (FDPM) that provides a defense mechanism to find out the real sources of attacking packets that traverse thro...
  • 数据被 python struct.unpack 加密后,java怎么解包 ? 获取方法: > public static int byte2int(byte[] data, int n) { switch (n) { case 1: return (int) data[0]; case 2: return (int) (data...
  • java实现的8583发包解包,里边是一个详细的demo,包含socket通讯和银联加密算法
  • java拆包与解包的注意点

    千次阅读 2019-07-16 11:41:12
    关于java的自动包装机制想必大家都用过吧,一般这些机制都用于在往容器中存储基本类型数据的时候,因为容器中不允许存在基本数据类型,所以就会调用自动包装机制,将基本数据类型转换为对象,将基本数据保存在对象中...
  • Java自动打包和解包

    2011-06-16 21:40:40
    Java打包和解包可以叫装箱和拆箱  打包:就是把基础类型转换为对象  解包:就是把对象转换为基础类型
  • so you not need to use ZipHelper.java just simply use ZipResourceFile expansionFile=null; try { expansionFile = APKExpansionSupport.getAPKExpansionZipFile(getApplicationContext(),3,0); ...
  • JAVA包装类及自动封包解包实例代码,需要的朋友可以参考一下
  • JAVA的TLV组解包

    千次阅读 2019-07-22 21:13:20
    有项目使用到了TLV组解包的模式,特意在此记录,以供参考: /** * 将字符串转换为TLV对象 * Created by ZFR on 2019/5/29. */ public class TlvUtils { /** * 将16进制字符串转换为TLV对象列表 * * @param hex...
  • java 自动打包解包技术

    千次阅读 2008-11-25 14:46:00
    public class TestArgs {private static Integer one=1;public static void main(String ...//将Integer对象直接赋给int类型,自动解包 Integer I2=3;//将int直接赋给Integer对象,自动打包 i1=i1+I2;//i
  • 打包:自动将基础类型转换成相应的对象 ...如:java.tuil.*:包里。假设HashMap包中value为基础数据类型的对象(Integer) int i=obj.get(key) 错 int i=(Integer)obj.get(key) 对 get的返回值不会自动解包为...
  • java中打包和解包

    2011-04-22 14:20:56
    java"]package com.test.xml; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream;.....
  • java自动包装与解包

    2019-05-04 11:54:00
    关于java的自动包装机制想必大家都用过吧,一般这些机制都用于在往容器中存储基本类型数据的时候,因为容器中不允许存在基本数据类型,所以就会调用自动包装机制,将基本数据类型转换为对象,将基本数据保存在对象中...
  • java自动打包解包和泛型

    千次阅读 2013-04-16 17:33:09
    在合适的时机自动打包、解包:  打包:自动将基本类型转换为对象。  解包:自动将对象转换为基础类型。 如: 打包:  Map m1 = new HashMap();  M1.put("one",1);   解包:  (Integer)m1.get("two");...
  • java中打包和解包命令

    2019-05-29 01:00:04
    NULL 博文链接:https://loveseaside.iteye.com/blog/853629
  • java的自动打包和解包

    千次阅读 2018-08-13 15:24:13
    Java1.5开始支持自动的打包与解包 装箱: 即把基本数据类型转化成对应类的对象。 ArrayList=new ArrayList();//list的各种操作都是针对对象的。 list.add(5);5本来是int类型的,现在自动包装成了Integer类的...
  • Java上的字符串解包器 任务:用Java编写一个用于解压缩字符串的程序。 输入是数字[string]形式的字符串,输出是包含重复子字符串的字符串。 示例:输入-3 [xyz] 4 [xy] z; 输出-xyzxyzxyzxyxyxyxyz 主要功能-...
  • java的封包解包及Integer内部缓存 导语: 之前项目组进行了代码评审,大家讨论的时候有位大神抛出了一个观点,在使用比较时不要使用封装类Integer进行比较,容易出问题。因为描述的不是特别清楚,我在家又仔细思考...
  • Java版ISO8583报文组包/解包

    千次阅读 2020-03-02 00:46:12
    文章目录一、8583协议简介二、位图规则三、8583格式报文参考四、组包/解包思路五、相关代码 一、8583协议简介   8583协议是基于ISO8583报文国际标准的包格式的通讯协议,8583包最多由128个字段域组成,每个域都有...
  • 转自: http://www.iteye.com/topic/448591
  • gb28181简单解包rtp ps流,推出rtmp(java版基于springboot):六、解包rtp ps流,推出rtmp
  • 在百度上搜了半天也没有找到一个合适的,有的不能操作文件夹,有的不能操作单个文件,有的不支持中文,总之没有找到合适的(也可能是自己搜索的能力差一些),只好自己写一个,主要代码如下: public static void ...
  • java版实现银联8583 解包、组包、签到、二维码交易、银行卡双免交易、批结算 ->send: 0057600501000061310031110808000020000000c...
  • 自动打包与解包:泛型:上栗子:TestMap1.java:package com.zhj.www; import java.util.*; public class TestMap { public static void main(String[] args) { Map m1 = new HashMap(); Map m2 = new ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,981
精华内容 7,592
关键字:

java解包

java 订阅