jar文件怎么打开(电脑打开jar文件的方法)
SSM框架学习问题总结:
1.出现BeansException原因:没有导入spring-beans-4.3.6.RELEASE.jar
2.一个基本的JAVAweb项目需要的包:spring-beans-4.3.6.RELEASE.jar,spring-context-4.3.6.RELEASE.jar,spring-context-support-4.3.6.RELEASE.jar,spring-core-4.3.6.RELEASE.jar,spring-expression-4.3.6.RELEASE.jar,commons-logging-1.2.jar
3.引用包的步骤:先拷贝.jar文件到WebContentWEB-INFlib目录下,然后在该项目上点击右键,选择Refresh.
4.eclipse没有web项目的处理方法:在eclipse中操作。Help->Install New Software->在work with中输入更新软件的网址,比如网页链接
5.Spring包下载网址:
网页链接
【开源资讯】Eclipse 4.19M1和 Equinox 2021-03 M1 现已发布
Eclipse 4.19M1 和 Equinox 2021-03 M1 现已发布, Eclipse SDK 项目也包含在 4.19M1 版本中。此次更新涉及平台、Equinox、Java 开发工具和插件开发的新功能,以及 SWT 的新 API。
平台和 Equinox 的新功能
1、在控制台窗口添加向前和向后查找
2、在断点窗口的右键菜单中添加“删除全部”选项来删除所有的断点
Java 开发工具的新功能
1、在 clean up 的首选项中添加 Java Feature 选项卡, 它详细列出了 Java 不同版本的语言特性
2、添加了一个新的 clean up 操作,该清理操作从 if / else if / else 代码块中提取通用代码
3、在 Java > Editor > Syntax Coloring preferences 选项中添加 Restricted identifiers 选项
4、外部注释的概念以适用于源文件夹
5、在 Preferences > Java > Enable 中添加 parallel index search 并默认勾选
6、在 Java 编辑器中的右键菜单里添加 Toggle Tracepoint 选项
7、可以在包括抽象方法的方法列表上切换断点
插件开发的新功能
1、直接从 target definition 窗口中添加/移除捆绑
2、在 Preferences > Plug-in Development > API Baselines 选项中增加缺少捆绑的警告
3、重构了添加自定义目标平台位置的 API
SWT 的新 API
添加 org.eclipse.swt.graphics.Resource.trackNonDisposed(boolean) 和 org.eclipse.swt.graphic1、s.Resource.trackNonDisposed(boolean, NonDisposedReporter) 方法来跟踪未正确配置的 SWT 资源
此外,对于 WIN 10 平台上 Windows 10 Defender 扫描 JAR 文件导致 Eclipse 运行显著变慢的问题,已经反馈给微软,目前的解决方法是把 Eclipse 添加到 Windows 10 Defender 的忽略列表里。
谷歌在野外发现34个流行Cobalt Strike黑客工具包的破解版本
谷歌云上周披露,它在野外发现了 34 种不同的 Cobalt Strike 工具破解版本,其中最早的版本于 2012 年 11 月发布。根据谷歌云威胁情报 (GCTI) 团队的调查结果,这些版本从 1.44 到 4.7,总共包含 275 个独特的 JAR 文件。Cobalt Strike的最新版本是 4.7.2 版。
Cobalt Strike是一种流行的对抗框架,红队使用它来模拟攻击场景并测试其网络防御的弹性。该框架已被网络犯罪团伙广泛滥用。它包括一个 Team Server,作为命令和控制 (C2) 中心远程控制受感染的设备,以及一个 stager,旨在提供称为 Beacon 的下一阶段有效载荷,这是一种功能齐全的植入物,可向 C2 报告服务器。
虽然 Cobalt Strike 的目的是模拟真实的网络威胁,但恶意行为者已经抓住了它的能力,并将其用作受害者网络中横向移动的强大工具。为了解决这种滥用问题,谷歌GCTI团队发布了一套开源 YARA 规则来标记恶意黑客组织使用的软件的不同变体。这个想法是“去除不良版本,同时保持合法版本不变,目的是将该工具移回合法红队的领域,让坏人更难滥用。”
肝了两天后终于搞定了JDBC OCI
JAVA应用访问Oracle 数据库主要有两种分别为瘦客户端,连接地址类似于"jdbc:oracle:thin:@//IP地址:端口/服务名",另外一种为胖客户端,连接地址类似于"jdbc:oracle:oci:@//IP地址:端口/服务名"。听说胖客户端的性能要比瘦客户端的高,以前一直使用的瘦客户端连接数据库,最近因为项目需要需要测试胖客户端连接数据库进行访问。本以为很简单,没想到这里面门门道道还不少,首先需要在客户机上安装oracle instant client 并且一定一定要按照Oracle服务端的版本选择对应的Oracle instant client,不然会连接不成功。然后如图一依次在Oracle官网下载了三个压缩包,解压后放在一个指定目录下如图一(我的是/opt/oracle),然后需要配置环境变量,如图二进行配置并应用。然后把instantclient路径下解压后的sdk目录和的数据拷贝到当前instantclient目录下,并在本目录的network/admin目录下配置tnsnames.ora文件。最后使用sqlplus工具尝试连接数据库,如果没有问题说明一切配置OK,然后将instantclient目录下的Xojdbc.jar文件添加到JAVA项目的依赖中去,最后的最后需要在启动项中加入instantclient路径依赖,如图三。一切就绪后,请开始你的表演[灵光一闪]
漏洞概述
近日,WebRAY安全服务部监测到编号为:CVE-2021-45105的Apache Log4j2拒绝服务攻击漏洞,当系统日志配置使用非默认的模式布局和上下文查找时,攻击者可以通过构造包含递归查找数据包的方式,控制线程上下文映射 (MDC),导致StackOverflowError产生并终止进程,实现拒绝服务攻击。目前只有log4j-core JAR 文件受此漏洞影响。仅使用log4j-api JAR文件而不使用log4j-core JAR文件的应用程序不受此漏洞的影响。
Apache Log4j2是Log4j的升级版本,该版本与之前的log4j1.x相比带来了显著的性能提升,并且修复一些存在于Logback中固有的问题的同时提供了很多在Logback中可用的性能提升,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。
WebRAY安全服务部也将持续关注该漏洞进展,第一时间为您更新该漏洞信息。
影响范围
漏洞编号
影响版本
安全版本
CVE-2021-45105
2.0-beta9 <= Apache Log4j <= 2.16.0
Log4j 2.17.0(Java 8)
Log4j 2.12.2(Java 7)
漏洞等级
WebRAY安全服务部风险评级:高危
修复建议
1、官方已发布安全版本,请及时下载更新,下载地址:
Tags · apache/logging-log4j2 · GitHub
2、临时缓解措施:
在日志记录配置的PatternLayout中,用线程上下文映射模式(%X、%mdc或%MDC)替换${ctx:loginId} 、${ctx:loginId} 等涉及上下文查找的内容。当所使用诸如HTTP标头或用户输入等应用程序外部的数据时,可以删除对上下文查找的引用。
Java框架很臃肿,比js的框架还臃肿
一个内部使用的小网站是标准的crud信息类应用,用springboot 2.7框架, 用redis缓存服务,透过mybatis使用数据库oracle,透过swagger组件发布API,透过一个excel包发布excel文件。
编译后jar包居然高达135M,解开发现boot-inf目录里的lib就占了112m,而vue前端webpack过的包占17M。这是啥概念,完整的docker镜像jdk11+alpine linux也就100M.
mvc功能就不说了,actuator有几个小网站能用到?估计框架众多依赖里90%的功能除了吃硬盘没其他用处。boot最小化设计好像从来就不会有。
Java世界里那些一板一眼看似严密规范,实则极度让人讨厌,比如mybatis的设计就为了那一点安全性和生成绑定代码,让人写大量繁琐无聊透顶的sql的xml模版垃圾。
现代的所谓框架实则到处制造垃圾,浪费资源,目的是建立厂商的护城河罢了。
Apache Groovy 4.0.3 发布
Daniel Sun于 2022 年 6 月 21 日发表
尊敬的社区, Apache Groovy 团队很高兴地宣布 Apache Groovy 4.0.3 版。
Apache Groovy 是一种用于 JVM 的多方面编程语言。
更多详细信息可以在The Apache Groovy programming language - Contribute网站上找到。
此版本是 GROOVY_4_0_X 分支的维护版本。
强烈建议所有
在此分支上使用先前版本的用户升级到此版本。
此版本包括变更日志中概述的 40 个错误修复/改进: 源、便利二进制文件、可下载文档和 SDK
包可以从官网下载
我们建议您使用该页面上的信息验证您的安装。
主要的二进制存储库中也提供了 Jar。
我们欢迎您的帮助和反馈,尤其要
感谢为此版本做出贡献的所有人。
#冬日生活打卡季#大家好,我是码农人生m呀!
今天来给大家介绍一款项目构建神器——Maven,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具,从此以后,再也不用担心项目搞崩了。
GitHub - itwanger/toBeBetterJavaer: Java 程序员进阶之路,该专栏风趣幽默、通俗易...
每天看着 star 数的上涨我心里非常的开心,希望越来越多的 Java 爱好者能因为这个开源项目而受益,而越来越多人的 star,也会激励我继续更新下去~
总结一下 Maven 的优点,主要有以下 3 点:
依赖管理:Maven 能帮助我们解决软件包依赖的管理问题,不再需要提交大量的 jar 包、引入第三方库;
规范目录结构:Maven 标准的目录结构有助于项目构建的标准化,通过配置 profile 还可以根据不同的环境(开发环境、测试环境,生产环境)读取不同的配置文件;
方便集成:能够集成在 IDE 中更方便使用。
安卓应用反编译对于安卓开发者确实非常简单,使用Apktool获取资源文件,使用dex2jar用于解析Java源代码,最后使用jd-gui查看源代码。
前提是应用没有混淆和加固。
我不闭门造车,也不纯粹破解别人的应用,只借鉴别人的少量优秀代码。
逆向工程一款APP,有经验只要5分钟,没经验的可能几天都搞不定。
【漏洞预警】Spring远程命令执行漏洞
漏洞名称:Spring远程命令执行漏洞
组件名称:Spring
影响范围:Spring core (jdk>=9.0)
漏洞类型:远程命令执行
利用条件:
1、使用Spring 框架以及衍生的框架(存在spring-beans-*.jar或CachedIntrospectionResults.class文件)
2、JDK>= 9.0
推荐一款开源的万能在线文档解决方案
在线文档在实际开发中是非常常见的使用技术,推荐的这个万能的在线文档解决方案,支持市面上常见的文件格式,如支持 office, pdf, ca,txt, xml(渲染), md(渲染), java, php, py, js, css, zip, rar, jar, tar, gzip , jpg, jpeg, png, gif, tif, tiff 等文件格式,并且是SpringBoot开发的,JAVA小伙伴有福了,接口采用rest方式实现的,开源项目支持二次开发。
有需要的,可以集成到项目中去。非常不错的一款开源工具。
喜欢的小伙伴记得收藏起来
#技术开发##程序员##saas建站##推荐#
这漏洞可真大,阿里牛人的log4j2漏洞检测跑了一下,直接调起了计算器。
漏洞流程我是这样分析理解的:
(1)我们使用log4j2在info、debug、warn、error过程中会传入打印参数。
(2)若这些参数来自于外部,例如:web提交,数据采集等,我们对外部请求的一些数据作为日志用log4j2打印或者输出成日志文件。
(3)在外部数据中若恶意加入一个jndi的ldap U地址变量进行,这个URL指向的是恶意ldap服务。
(4)当log4j2开始打印这段包含恶意URL变量,会识别出这段URL,然后进行jndi的ldap调用进行对象lookup。
(5)接受log4j2请求的恶意ldap服务会给log4j2传回一个恶意的class。
(6)log4j2获取此class仅仅是对象根,然后会根据这个根的信息再次远程请求恶意RPC服务器,获取此class根对应的恶意实现对象,并在jvm上反序列化。
(7)此对象会在反序列化成功后,会在log4j2所在的jvm运行环境执行各种内置恶意执行调用。
总之一句话,兄弟们赶紧打补丁吧,这漏洞把雨水都漏到裤衩里啦!
注意补充一下:
这是全平台漏洞,以Linux云计算的应用部署量,问题更严重,Windows只是本机测试,只要产品涉及有log4j2,一定要升级jog4j2最新版的jar包,还要自查产品的依赖包有没有把log4j2打进依赖jar内部。
今日遇坑:
1.SSM项目修改变为springboot项目
没想到与jsp整合的时候 pom.xml要添加视图文件编译输出的配置... 否则tomcat解析不了jsp?就这一个配置搞了我一下午!!!
2.与jsp整合的springboot项目要打包jar包运行404?
也是坑,原来要打包成war包...但至于为啥还不明白?打包war包前还要修改启动类,pom.xml也要修改..否则打包出来依然404?
有人知道为啥打包war包要修改启动类继承SringbootServletInitializer呢?
centos中用TOP命令可以查看cpu占比,如果80%以上需要引起注意。
1、图1中一个进程cpu的占比到了685%,已经接近天花板。
同时可以看到其对应的进程信息是2156.
用命令
ps -2156
在图2中可以知悉进程对应的的服务名,jar包,路径,还有内存配置等信息。
2、命令
top -p 2156 -H
查看是线程CPU过高,还是进程CPU过高,一个进程包括多个线程,图3中,-H表示查看线程信息,这里的列名还是pid,实际上是线程的pid,就是2156这个进程下所有线程信息(图3中有9个线程占比高).
3、根据线程查看堆栈信息,用线程号是2629来分析
命令
printf "%x " 2629
首先将线程ID转换 成16进制,得到a45
4、查看该进程下的堆栈信息
将堆栈信息写入到文件中
jstack 2156 > th20210719.log,
然后在文件中查找根据线程0xa45去找日志就可以了,执行这条命令的时候,需要用程序所属的用户,不能用root用户。
经过以上分析,便可以知道程序中是哪些线程需要调优了,这种方法非常适合研发人员使用,当然,如果运维人员能明白,更胜一筹。
Nginx + Tomcat 负载均衡配置
准备两台虚拟机 192.168.56.9 和 192.168.56.10,以下软件的安装与配置需要在两台虚拟机上都执行一遍。
0x01:Nginx 安装
Nginx安装可以参考Nginx系列文章 [ Nginx源码安装 ]
0x02:Tomcat安装
Tomcat 的启动依赖 JDK 运行环境,所以安装 Tomcat 之前,先需要安装 JDK。JDK 和 Tomcat 都是绿色软件,安装非常简单,只要解压即可。
解压JDK
tar -zxvf jdk-8u161-linux-x64.tar.gz
配置 JAVA_HOME 环境变量
JAVA_HOME=/usr/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
可以配置到 /etc/profile 或者 .bash_profile 文件里。
获取 Tomcat
wget 网页链接
解压 Tomcat
tar -zxvf apache-tomcat-8.5.64.tar.gz
启动
./bin/startup.sh
验证是否启动成功
192.168.56.10 虚拟机
192.168.56.9 虚拟机
0x03:配置负载均衡
Nginx配置大致如下
关键配置
配置负载均衡的两台 Tomcat
配置 Nginx 反向代理
0x04:验证
这里其实只需启动一台 Nginx + 两台 Tomcat 即可。另外,多安装一台 Nginx 是为了后续讲解 keepalived 的。比如只启动 192.168.56.10 虚拟机的 Nginx。
在 192.168.56.9 Tomcat 的 webapps/ROOT 目录下创建文件 a.html,内容:
<html>
<body>
<h1> Tomcat : 192.168.56.9 </h1>
</body>
</html>
在 192.168.56.10 Tomcat 的 webapps/ROOT 目录下创建文件 a.html
<html>
<body>
<h1>Tomcat : 192.168.56.10</h1>
</body>
</html>
同时启动两台 Tomcat ,直接访问 Tomcat
192.168.56.9 虚拟机
192.168.56.10 虚拟机
访问192.168.56.10 的 Nginx,有可能访问到 192.168.56.9 的Tomcat,也有可能访问到 192.168.56.10 的 Tomcat
另外可以测试,关闭一台 Tomcat ,访问也是没有问题的,达到负载均衡的目的,同时实现了 Tomcat 的高可用;Nginx 没有达到高可用,下篇讲解 Nginx + keepalived。
【开源资讯】Apache Fineract 1.5.0 发布,开源金融服务解决方案
Apache Fineract 1.5.0 现已发布了。Apache Fineract 是一个开源的系统,用于核心银行系统平台化建设。为创业者、金融机构和服务提供商提供了一个可靠、健壮的、可负担得起的金融服务解决方案。
主要更新内容
1、从 ThitsaWorks CB 获取信用报告
2、自述文件和其他文件不受 Spotless 覆盖
3、Swagger fineract-client 将作为单独的模块
4、Travis CI 实际上没有建立新的多模块项目结构
5、从 Joda API 迁移到 java.time
6、电子邮件服务配置默认为端口 25,而不考虑指定的端口号
7、Swagger CodeGen WARN i.s.c.v.g.java.AbstractJavaCodegen - New(保留字)不能作为模型名称。重命名为 ModelNew
8、Swagger UI 应该针对其所在的服务器运行 "试运行 "查询
9、修复信用局贷款产品映射模块损坏的问题
10、修复 ProcessorHelper 错误处理可能导致 NullPointerException 的问题
11、SDK Swagger Java Client 生成的实用程序已损坏,应从 JAR 中删除
12、使用新的 Swagger Client API(“ Fineract SDK”)进行集成测试
13、将信用报告上传到 ThitsaWorks CB
14、将 Google ErrorProne 代码质量扫描仪工具从 2.4.0 升级到 2.5.1
【你那里护网了吗】
近几年护网行动,真是折磨人。一会儿挖出一个漏洞,就像无底洞。这中间发生了一些多年未见的怪事。
我们打补丁,升版本,期间由于JDK版本升级引发了前人埋下的好多雷,那个找啊!![流泪][流泪]说多了都是泪!
看主机load,CPU和内存,看应用日志,看mybatis日志,看接口日志,看awr日志,看程序逻辑,真是浑身解数都用上了。看的个我呀,头晕眼花![晕][晕]
1 核心jar包在多个应用中使用,由于没有同步更新,导致服务莫名挂死,CPU和内存还不高[流泪][流泪]
2 jar包版本冲突,由于jvm无序加载第三方jar包,导致有的应用正常有的异常,一番对比,哪哪都一样啊[捂脸][捂脸]
3 配置文件中多处scan定时任务,导致定时任务组件被两次初始化,springmvc老项目定时任务总是执行两遍,最近才发现,看代码哪哪都一样啊[捂脸][捂脸]
#行业前沿#
1、Spring Boot 2.4.5 & 2.3.10 发布
2.4.5
当 spring.main.cloud-platform 被设置为NONE时,CloudPlatform.isActive 可以返回 true
Elasticsearch 自动配置没有配置默认的转换器
Gradle bootBuildImage 不会保留资源的文件权限
Keystore.load 调用不会关闭 InputStream
带有 Reactory Netty 的 TCP 的密码配置被忽略
修复使用 Cassandra 关闭 Spring Boot 应用程序时出现 java.util.concurrent.RejectedExecutionException 的问题
修复 spring-boot:build-image 在配置中指定分类器时挂起的问题
修复 AbstractWebMvcEndpointHandlerMapping 不链接 InvalidEndpointRequestExceptions 的问题
修复当 JVM 退出时,未打包的 jar 不会被删除的问题
2.3.10
修复使用上下文层次结构运行时,PrimaryDefaultValidatorPostProcessor 引起 NoSuchBeanDefinitionException 的问题
修复 TldPatterns 与 Tomcat 不对齐的问题
修复 http.client.requests 的 URI 标签忽略 REST 模板的根 URI的问题
修复当配置了多个架构或数据脚本位置并且在某个位置找不到任何资源时,用户无法确定哪个位置有故障的问题
EmbeddedDatabaseConnection#h2 不应指定主机名
修复 spring-web 不存在时,RSocket 的 EmbeddedServerAutoConfiguration 不会关闭的问题
2、Docker 20.10.6 发布
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化
3、TeamCity 2020.2.4 发布,持续集成工具
TeamCity 2020.2.4 发布了。TeamCity 是一款功能强大的持续集成工具,覆盖服务器端和客户端。它提供一系列特性可以让团队快速实现持续集成:IDE 工具集成、各种消息通知、各种报表、项目的管理、分布式编译等等。该版本是 2020.2 系列的最后一次错误更新,解决了 30 多个问题。
4、Spring-Analysis 新版本发布!SpringMVC 九大核心对象
Spring-Analysis 是一个围绕 springframework 进行源码分析的项目。
5、分布式图数据库 Nebula Graph v2.0.1 发布,优化了服务性能
Nebula 是一个分布式、可扩展的图数据库。它是世界上唯一能够容纳具有数十亿个顶点(节点)和数万亿个边缘的图数据库解决方案,同时仍然提供毫秒延迟。
Nebula 的目标是为超大规模图提供高并发,低延迟的读、写和计算。Nebula是一个开源项目,我们期待与社区合作推广图数据库。
什么是规则,就像在大数据里寻宝,所谓“寻宝”其实等同于找寻规则,规则类似于这样的表达:“如果…那么…”,前半部分为条件,后半部分为结果。比如在一个有 3000 个顾客的购物清单数据中,经过统计有 723 人同时购买了速冻食品和奶油饼干,其中有 788 人只买了速冻食品,那么该算法产生的规则形如:frozen foods=t 788==> bread and cake=t 723 conf:(0.92),conf表示在购买速冻食品的人中有 92% 的人会同时购买奶油饼干。其次,什么规则会感兴趣,假设有两个事件甲和乙,按照兴趣度从高到低,分为以下四种情况:甲经常发生,发生的时候乙伴随发生的概率很高。甲很少出现,但是一旦出现乙出现的概率很高。甲经常发生,发生的时候乙伴随发生的概率一般。甲很少出现,出现之后乙出现的概率一般。
数据挖掘具体步骤如下:
(1)下载并安装 weka,然后打开分析软件。
(2)点击 Explorer 按钮,并选择应用于算法的数据,weka 安装完毕后在其安装目录下提供了一些样本数据,这些数据格式都是 ARFF(AttributeRelation File Format)文件,这是一种 ASCII 文本文件。这里选择 Supermarket.arff 数据样本,这个数据集合是大型超市顾客购买记录的样本集:选择感兴趣的属性,这些属性未来会出现在最终产生的规则中。
(3)选择 Associate 选项进行 Apriori 算法的支持度和置信度等参数设置,这里设置最小值支持度为 0.17,最小置信度为 0.9,参数可以在该界面调整。
(4)点击 start 按钮,weka 工具将运用 apriori算法进行关联规则挖掘,结果在右边显示。运行结果中,看到一共产生了 6 条规则。第一条规则含义:biscuits=t fruit=t total=high 954 ==> bread and cake=t 866 conf:(0.91),代表有 954 人购买了水果和饼干,其中 866 人同时购买了面包、水果和饼干,也可以理解为在购买水果和饼干的前提下,又去购买面发生的条件概率是 91%,即算法中定义的置信度,这个值大于设置的 0.9,所以显示出来。需要注意:支持度和置信度的设置不能随意给出,更不能说支持度和置信度设置的越高就越好,这个跟数据所处的行业有关,必要时可能需要行业专家的辅助。比如要分析癌症发病和地域,生活习惯,性别等等的关系,支持度就应该设置的很低,因为病人当中癌症发病率很低,关心的是置信度,来判断与那个因素关联密切,这当中的价值显而易见。
Java 语言比较容易调用 Weka,主要是因为Weka 本身就是基于 Java 开发的。如果 Java 项目中需要集成 weka,只需在项目中导入 weka.jar,然后调用后者的 API 即可。上面的分析实例用 Java 实现代码如下:
public class WekaDemo {public static void main(String[] args) throws Exception {// load dataFile inputFile = new File("C:\Program Files\Weka- 3 - 6 \data\supermarket.arff");// 数据样本文件
ArffLoader atf = new ArffLoader();atf.setFile(inputFile); Instances data = https://czxt.haoyundao.net/atf.getDataSet(); // 读入数据文件
data.setClassIndex(-1);// 设置分类属性,由于这并非分类算法可以设置为 -1//
build associatorApriori apriori = new Apriori();apriori.setClassIndex(data.classIndex());apriori.setLowerBoundMinSupport(0.17);// 设置最小支持度
apriori.setMinMetric(0.9);// 设置最小置信度
apriori.buildAssociations(data);// 开 始根据设置参数进行挖掘// output associatorSystem.out.println(apriori);// 打印关联规则 }}
运行结果和直接用 Weka 得到的结果一致。#能源化工装置运行数据挖掘技术# #开源软件# #计算机辅助化工装置选型设计#
前几天从某大厂平台下载了android 端sdk,按照官方文档 引入 xxx.aar,不是sync gradle报错就是build apk报错,错误提示也是各种各样,一会说gradle插件版本不够新,一会说当前jdk是1.8不是11,在setting上->build tools->gradle各种设置, 上面都解决了还是不行,网上搜索,按照网上大多数人的描述 修改 项目build.gradle 加入
repositories { flatDir { dirs 'libs' } }
再修改应用的build.gradle 在dependencies那里加入
compile(name:'aarName', ext:'aar')
我告诉你们,那根本没个卵用! android就直接报错不认识flatDir这货。错误截图我就懒得上了。(compile 应该被implementation取代,网文很多都是滞后的)。查来查去各种网文,试遍各种方法,有的说在settting.gradle设置repositories ,有的说dependencies加一个 compile fileTree(include: ['*.jar'], dir: 'libs'),最后结果sync gradle通过了,但是build apk识别,因为代码根本不识别引入的aar。
最后按照某网文,删除 flatDir { dirs 'libs' } } 改 成
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
把 compile(name:'aarName', ext:'aar') 改成 implementation files('libs/aarName .aar')
dependencies 那里改成
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
...
implementation files('libs/aarName .aar')
这才算成功了。
说句实话,我每次从某官网下载个android demo,从来没试过用android studio打开就可以直接运行的,至少要经过几个小时各种折腾,下载各种插件不同版本修改各种配置文件。那些做java,做android开发的人,你们活得真不容易。就是引入一个第三方代码库/组件/控件这么简单的事,我不理解为什么可以做得那么复杂,android的配置,为什么那么复杂,各种配置眼花缭乱,什么gradle 什么jdk 又是maven 又是classpath 又implementation,哎呀我去,我这习惯做 .net 的人实在难受,感觉做java和做安卓的大部分开发时间都在搞这些配置引用,正经写代码的时间我估计都少,怪不得都说程序员习惯加班熬夜,我一直很奇怪,因为我做开发,很少需要加班完成开发任务的。
#android# #引用aar# #java##gradle# #flatdir#





