- 博客(51)
- 收藏
- 关注
原创 由 JRE 软链接依赖引发的故障排查
Java应用 SAP 系统自带了一个 JRE,但在Ubutnu2004上部分功能不正常。初步排查发现,该 JRE 版本来源不明(用户也说不清是哪里来的)。:从 Ubuntu 2004 launchpad 下载的 deb 包,解压后将其jre目录替换 SAP 自带的 JRE。:替换后应用报错,但若在系统中安装,则不会出现此问题。
2025-02-28 17:00:48
257
原创 Ubuntu上如何获取分区的可用空间
最近工作需要获取指定磁盘分区的可用空间,在这里记录一下。网上找的资料一般用的是statvfs获取的,不过这种方案有缺陷,这里先简单介绍一下。
2024-10-22 17:04:18
480
原创 新手向-pkg-config的原理和使用
pkg-config是一个用于链接库的工具,可以简化编译的语句。# 不使用pkg-config# 使用pkg-configpkg-config帮我们自动链接了opencv相关的库,省得我们自己写了。
2024-10-18 14:26:48
456
原创 新手向-二分法总结
数组长度为n,第一次取中位数区间长度变为n/2,第二次变成n/4,第三次变成n/8,....,以此类推,最大操作次数 k 满足 n/(2的k次方)=1, 即k=log2(n)。二分查找的核心在于维护一个搜索区间 [left, right],每次将区间一分为二,并根据目标值 target 与中间值 middle的比较结果调整区间。加上 `left` 是为了避免溢出,并且确保 `mid` 在正确的范围内。为何 `mid` 计算公式是 `left + (right - left) / 2`?
2024-10-14 17:42:56
341
原创 ubuntu2004上的glib编译教程
然后尝试debuild,这里会编译不过出去,不过dbuild会自动生成一些编译文件,不要删除。最近因为工作需要编译glib,写文章记录一下编译流程。接下来,我们按照install.in的内容进行本地编译。根据control文件的提示安装对应的依赖。这样就编译并安装完成了。
2024-08-09 16:42:56
282
翻译 新手如何为OpenJDK社区提交贡献?
当我们打算为OpenJDK社区提交贡献的时候,先不用考虑技术细节。我们自己的目标是:1. 获取知识。2. 提高技能。3. 提高知名度。4. 交朋友。5. 证明对Java的热爱。等等。
2023-11-21 17:20:21
317
原创 Ubuntu2004字体不清晰,排查流程
昨天一早来发现平时用的Ubuntu2004物理机的字体变得很模糊,之前还是好好的,这里记录一下解决方案。
2023-11-10 09:25:50
814
原创 遇到java.security.AccessControlException:access denied怎么办?
今天工作中遇到了如下报错,记录一下解决方案。这个问题出现在openjdk8启动网页端Java应用。
2023-11-08 15:51:41
1547
原创 JDK API Diff Report Generator——Java版本对比工具
今天查资料找到了除了EMT4J之外,其他可以用于Java版本迁移的工具。这里简单的记录一下。非Java er,有不同意见欢迎评论区交流。
2023-10-27 16:47:50
302
原创 ubuntu2004上安装openjdk6
今天因为工作需要要在ubuntu2004上安装openjdk6,还是有点麻烦的,这里记录一下过程。安装了这些依赖之后再次安装我们首先下载的openjdk开头的包,即可成功安装。,选择对应的架构并将openjdk开头的包全部下载回来。libpng12-0需要额外的操作,参考博客在。openjdk的下载地址在。
2023-10-23 11:26:38
301
原创 如何ubuntu2004上运行Java小程序(Applet网页插件)
oracle8的jre里自带一个插件libnpjp2.so,这个插件可以用来开发Java applet。不过oracle8的jre只提供amd版本,不提供arm版本,导致使用了applet的业务系统无法在arm上运行,本次解决的就是这个问题。libnpjp2.so只在oracle的jre里有,jdk里没有,原因不明。
2023-10-16 10:52:12
475
原创 为什么float可以定义成float x= 33.1f的形式?
此时,如果我们要将某个变量定义为单精度数字,需要额外进行处理,也就是类似如下表达式,在数字后面加个f。最近在重温C语言的内容,在b站看课,看到float x= 33.1f,不明白为什么数字中会有f。0.1可以写成1/10,而10的分解质因数为2 * 5,2可以用二进制表示,但是5不能。二进制表示小数只能表示成1/2,1/4,1/8这样的形式,1/5=1/8+3/40。因此在这种编译器下,定义的变量类型是float还是double,默认都是双精度的。因为二进制无法准确的表示0.1。
2023-04-01 20:00:59
216
原创 Ubuntu上的OpenJDK8编译流程
最近因为工作需要编译了openjdk-8,在这里记录一下编译流程和遇到的问题。本次编译了amd64和arm64两个版本。
2023-02-02 16:55:30
875
原创 Ubuntu 2004 格式化分区导致无法启动 解决流程
昨天想格式化优盘,没注意把系统的一个分区给格了 .....第二天来公司电脑就起不来了,一翻操作误打误撞给救回来了。
2023-02-01 11:02:47
407
原创 在Ubuntu上用cups api实现打印功能
最近由于工作需要,要写一套打印相关的接口。Linux上一般自带一套管理打印机的通用工具,叫cups。它提供了打印机的连接,配置,打印等等功能,因此我这次选择用cups的api来实现打印相关的内容。cups本身提供了一系列命令行工具方便用户使用,我们接下来会使用一些命令行来测试。
2022-10-12 11:39:14
4112
原创 10分钟了解WebAssembly!
这几天一直在调研wasm的相关内容,准备总结一下。WebAssembly是一种类似汇编的文件格式,它可以由C/C++/Rust/Go等语言的源码编译而成。这种格式的文件可以被前端的js代码直接调用,以使得以各种语言编写的代码都可以以接近原生的速度在 Web 中运行。同时,它也是一项W3C标准,目前已得到主流浏览器厂商的支持。WebAssembly是由web(网络)和assmbly(汇编)两个词合成的,意思是网站上的汇编语言,而WebAssembly本事也确实如此,WebAssembly可以简写为wasm。随
2022-07-04 11:41:09
2506
原创 C语言中结构体的强制类型转换
最近在学习C语言中的Socket,遇到了结构体强制类型转换的问题,在这里记录一下。我们看一个例子在这里例子中bind函数的第二个参数将结构体sockaddr_in强制转换为结构体sockaddr,但是为什么不直接转换,而是用指针转换?这里记录一下答案:C语言中的结构体无法直接进行强制类型转换,需要借助结构体指针进行转换。为什么不能直接强制类型转换?因为结构体里的成员数据类型不同,因此占用的字节数不一定相同,直接类型转换可能会导致数组越界。但是指针转换类型就没什么问题了,因为指针占用的字节数都是相同的。因
2022-06-16 14:19:16
2542
原创 memset初始化结构体为什么要用&
这几天在学习socket编程,遇到memset初始化结构体的问题,在这里记录一下。看来一个问题memset将结构体初始化为0,到这里都没什么问题。可是为什么memset的第一个参数是&seraddr,而不是seraddr?经过一番搜索后找到了答案。不论是我们定义普通的变量还是结构体变量,对应的变量都代表两种含义:一个变量有两种含义这样就不方便使用了,因此C语言进行了如下规定:memset函数的功能是初始化从某个地址开始的n个字节,因此第一个参数应该是地址,因此不应该是seraddr,而是&seraddr
2022-06-16 11:29:50
734
原创 C语言中的fork
C语言中的函数,fork在英文中是分叉的意识,在C语言中,执行过fork的进程会分叉出一个新的进程。新进程被成为子进程,原来的进程被称为父进程。这里举两个例子说明一下fork的功能分析程序在执行到fork的时候克隆出了子进程,子进程具有当前进程的一切资源。子进程从fork开始执行,并不执行fork前面的代码。fork之后的代码有两个进程在执行,因此输出了两次。而且fork之后父子进程不共享数据,因此两边数据不互相影响,一开始i=0,i++之后i都等于1。同时由于父子进程不共享数据,因此父子进程要通信只
2022-06-01 15:02:36
8544
5
原创 C语言中的位运算
位运算是什么?直接对二进制进行的运算叫位运算。位运算的作用?计算机中数据以二进制存储,位运算相比于我们正常的十进制运算有更高的执行效率。位运算的运算符符号名称&与|或^异或~非<<左移>>右移运算规律两个运算数1和11和00和0总结&100全部为1结果才是1|110相同为0,不同为1^010相同为0,不同为1一个运算数
2022-05-31 15:57:03
98
原创 Linux系统启动流程
要考Linux基础了,提前复习一下相关内容。这两天学习了系统启动流程,现将学到的整理如下:BIOSBIOS(Basic Input Output System,基本输入输出系统)是烧录在ROM(Read Only Memory)芯片上的一段程序,通电即开始执行,是开机之后执行的第一段程序。BIOS进行了两件事情:POST(Power On Self Test)即对CPU,磁盘等硬件设备进行自检,检查计算机是否满足基本的运行条件。如果自检不通过,设备无法正常启动。寻找下一阶段的启动程序。进入
2022-05-24 14:43:25
133
原创 计算机基础——数据存储
在程序媛计划学习了计算机基础,将所学整理如下:核心硬件中央处理器(CPU),内存(Memory),硬盘(Hard Disc),显卡(Graphics Card)。这些硬件之间互相配合,接受输入的数据,进行运算,然后输入硬件之间如何传递信号?用二进制的方式。计算机采用电平信号的方式来来传递数据。电平是电压的范围,低于0.4V被称为低电平,高于2.4V被称为高电平。只用这两种信号而不用更多的信号是为了信息传递更简单,更不受硬件影响。如果有多种信号的话需要用不同的电压范围做区分,同时还要考虑因为电
2022-05-17 17:50:34
511
原创 C语言中的sizeof和strlen
介绍sizeof计算的是占用的内存大小,strlen计算的是字符串的长度,strlen是第一个字符到字符结尾的\0之间的长度,这两个函数的返回值都是以字节为单位。实例#include <stdio.h>#include <string.h>int main(){ char *a = "123"; char b[] = "123"; char c[] = {'1','2','3'}; printf("sizeof(a) = %ld,strl
2022-05-13 17:51:54
464
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人