都有chatgpt了,实在不想写博客....不过还是记录一下问题吧。

我们在用matlab打包jar包的时候,经常会出现打包出错的问题,但无非注意以下几点就行了:

1、打包方式

这个还是很简单的,而且linux、windows没区别,打开matlab命令行窗口,然后输入deeploytool,之后会弹出来一个窗口,在弹出来的窗口选择Library Compiler,如下:

之后会弹出来一个大窗口,用来打包的,如下:

根据图片里面的文字进行操作就行~然后点击右上角Package,等他打包完就行了,在生成目录找到for_redistribution_files_only目录,jar包就在里面。PackagingLog.html可以看看打包日志~

2、打包问题

打包出现的问题无非就是需要注意以下几点:

  • 环境问题

  这里指的是jdk环境环境,对于linux,就需要在/etc/profile或者~barshc文件加jdk环境,而windows则是在系统环境变量里加jdk环境,这个一般不会出错;

  • 同代码跨平台问题

同代码跨平台出现的问题基本上是由于编码问题引起的,linux是utf8编码,而windows是gbk编码,当然不能通用了~网上给的教程都是什么改matlab默认编码,这操作真的蠢。其实编码不同造成的影响都体现在中文上面,这说明什么?很简单,你只要把代码里面的所有中文注释删掉就完事了。什么?注释太多了?不好删?那么你还可以使用下面这种方法,就是通过运行一段代码将你的所有代码转换成无注释代码,如下:

% 源代码文件路径
src = 'D:/test';
% 生成代码路径
resultPath = 'D:/test/utf8';
files = dir(fullfile(src));
for i = 1:length(files)
if files(i).isdir == 0
filePath = [src,'/',files(i).name];
rePath=[resultPath,'/',files(i).name];
code = fileread(filePath);
codeWithoutComments = mtree(code).tree2str();
fid=fopen(rePath,'a');
fprintf(fid,'%s',codeWithoutComments);
fclose(fid);
end end

  注意:代码里面所有涉及到路径的都用\,如d:\\test应该写成d:/test

  • 日志文件PackagingLog.html报错内容有^或者*符号,比如:* %% 瀵瑰垎鍓插悗鐨勫浘鍍忚繘琛屽鐞?

  没错不用怀疑,还是因为中文乱码的问题,有些地方中文注释影响打包了,参考上一点解决方法。

  • 打包没问题,但是运行的时候出现未定义与 'XXX' 类型的输入参数相对应的函数

  好家伙,这问题是真头大了,比如说我就在使用神经网络时遇到过未找到SeriesNetwork的问题,折磨了很久,后面发现应该是matlab打包后,因为SeriesNetwork是第三方工具的问题,他不会自动从环境中找到这个文件然后打包进jar包中,所以解决办法就出来了,那就是从matlab安装目录中找到未定义函数的文件,然后复制到你的项目目录下,就完事了。

  比如我缺少的SeriesNetWork文件路径在:

  最后要说的是:这种方式不一定适用于2021以下版本,比如2018的打包方式就与2021完全不同。

Matlab2021a打包jar包问题(linux、windows)的更多相关文章

  1. 将java打jar包成linux后台服务service

    将java打jar包成linux后台服务service 第一步:将java程序打成jar包 build.gradle配置文件中加spring-boot-gradle-plugin插件,具体配置如下(配 ...

  2. 将一个jar包放到linux下定时执行

    将一个jar包放到linux下定时执行 1.在dbtodb文件夹下新建一个dbtodb.sh,脚本内容为: #!/bin/bash cd /usr/dbtodb/ java -jar dbtodb.j ...

  3. Java Service Wrapper将jar包安装成Windows服务

    刚接触java,第一次使用Java开发windows服务,也是刚不久看了SSM框架 简直也是一头雾水,不过只要用心理解,其实很简单,下面有详细的步骤,包学包会 在windows上运行jar包,需要在工 ...

  4. Winsw将jar包部署为windows服务

    1. 下载Winsw https://github.com/winsw/winsw/releases 下载winsw官网上的xml文件和.exe文件 2. 编辑配置文件 创建一个文件夹demo,将所需 ...

  5. 说一下三种jar包在Linux的启动方式

    最近在linux上发布了一个SpringBoot项目,研究了一下jar包在Linux上的集中启动方式,特在此分享一下. 这里默认要启动的jar包为demo-0.0.1-SNAPSHOT.jar 第一种 ...

  6. springboot项目打包成jar包在Linux服务器默认80端口运行

    springboot项目端口设置 在application.properties文件 server.port=80 在application.yml文件 server: port: 80 然后在ide ...

  7. springboot打包jar包后运行

    我们知道,spring boot内嵌tomcat,打包成jar包以后,直接就可以运行. 我们也可以使用启动项里面的mian入口来运行程序. 运行jar包时,我们一般是java -jar xxx.jar ...

  8. scala打包jar并在Linux下运行

    打开 File -> Project Structure Artifacts -> + -> jar -> From Modules with dependisies... 选 ...

  9. 使用gradle打包jar包

    近期用android studio来做android开发的IDE,它是使用gradle来构建的,于是開始学习gradle. 如今有一个项目,里面有一个android-library的模块.我想在做re ...

  10. IDEA打包jar包

    1.点击idea左边的Maven 2.点开要打包的项目下的-->Lifecycle-->双击package 3.jar包会默认保存在项目下的target文件夹下

随机推荐

  1. 3.2 构造器、this、包机制、访问修饰符、封装

    构造器 构造器:在实例化的一个对象的时候会给对象赋予初始值,因此我们可以通过修改构造器,来改变对象的初始值,构造器是完成对象的初始化,并不是创建对象 我们也可以创建多个构造器实现不同的初始化,即构造器 ...

  2. Nginx常用基础模块

    Nginx常用基础模块 目录 Nginx常用基础模块 目录索引模块 配置方式 nginx的状态模块 配置方式 nginx访问控制模块 配置方式 nginx的访问限制模块 请求限制重定向 Nginx连接 ...

  3. 2020-09-01:mysql里什么是检查点、保存点和中间点?

    福哥答案2020-09-01: 检查点checkpoint:批量刷盘.在一定程度上代表了刷到磁盘时日志所处的日志序列号(LSN)位置.标记重做日志中已经完成刷到磁盘的位置点,如果缓冲池中有很多重做日志 ...

  4. 2022-10-03:给定一个正数n,比如6 表示数轴上有 0,1,2,3,4,5,6 <0 或者 >6 的位置认为无法到达 给定两个数字x和y,0<= x,y <= n 表示小人一开始在x的位置,它

    2022-10-03:给定一个正数n,比如6 表示数轴上有 0,1,2,3,4,5,6 <0 或者 >6 的位置认为无法到达 给定两个数字x和y,0<= x,y <= n 表示 ...

  5. 2022-09-24:以下go语言代码输出什么?A:1;B:3;C:13;D:7。 package main import ( “fmt“ “io/ioutil“ “net/

    2022-09-24:以下go语言代码输出什么?A:1:B:3:C:13:D:7. package main import ( "fmt" "io/ioutil" ...

  6. < Python全景系列-2 > Python数据类型大盘点

    <Python全景系列-2> Python数据类型大盘点 欢迎来到我们的系列博客<Python全景系列>!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高 ...

  7. MMCM and PLL Dynamic Reconfiguration

    Reconfiguration is performed through the DRP. The DRP provides access to the configuration bits that ...

  8. ES6迭代器(Iterator)和生成器(Generator)

    平时我们迭代数据用得最多的应该就是for循环了 来看个简单的例子 var colors = ["red", "green", "blue"] ...

  9. PlayWright(一)

    1.如何安装? 安装playwright只需要一条命令,就是pip安装命令,命令如下: pip install playwright 注:playwright需要Python3.7或更新的版本 2.然 ...

  10. 驱动开发:内核扫描SSDT挂钩状态

    在笔者上一篇文章<驱动开发:内核实现SSDT挂钩与摘钩>中介绍了如何对SSDT函数进行Hook挂钩与摘钩的,本章将继续实现一个新功能,如何检测SSDT函数是否挂钩,要实现检测挂钩状态有两种 ...