用java做个图片处理网站过程遇到的坑

很久没主动搭过项目了导致遇到的坑,废了我一个周末网站现在还没搭建起来,下面记录下部署过程的坑。

说下我的本地环境:win11、idea、jdk8暂且没用数据库 前端用的layui也没前后端分离,网站搭建好要过几天了因为我要编译依赖要费点时间。

服务器能用linux还是尽量linux吧,苦笑下

坑一:jar包冲突,没指定主函数

之前我本地跑程序的时候缺少servlet-api.jar我就随手引用了,导出执行jar包执行的时候跟内置的tomcat包冲突。

解决办法:打包的时候排除冲突包,添加主函数配置

坑二:resources资源文件或者java目录加载不到

xml 复制代码
<!-- 定义包含这些资源文件,能在jar包中获取这些文件 -->
<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.*</include>
        </includes>
        <!--是否替换资源中的属性-->
        <filtering>false</filtering>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <includes>
            <include>**/*.*</include>
        </includes>
        <!--是否替换资源中的属性-->
        <filtering>false</filtering>
    </resource>
</resources>

坑三:dll依赖的巨坑

因为我主要依赖win下的dll(linux是so)我在win下写的代码想着部署简单点就选了winserver结果坑了我两天时间缺各种依赖。本想着少事情结果费更多的事情,没办法我又搞起了centos。

因为我是要主动加载dll需要找文件拼接路径处理在jar包里面是个巨坑。

scss 复制代码
InitUtil.class.getClassLoader().getResource("").getPath()
InitUtil.class.getClassLoader().getResource("/).getPath() null
InitUtil.class.getClass().getResource("").getPath() null
InitUtil.class.getClass().getResource("/").getPath()
普通的读取文件操作可以用 getResourceAsStream进行操作

dll之前我是在resources目录中,主动加载的话涉及到一个问题jar包读取文件,后面这个问题我这里暂且选择了在跟程序一个目录下加载了(注意linux下需要调整下)。

txt 复制代码
##windows平台:
.dll : 动态链接库,作为共享函数库的可执行文件.
.obj : 目标文件,相当于源代码对应的二进制文件,未经过重定义.
.lib : 可理解为多个 obj 的集合,本质与 .obj 相同.
##linux平台:
.so:(share object)动态链接库,和windows 的 dll 类似.
.o : 目标文件,相当于源代码对应的二进制文件 类似 windows 下 obj.
.a : 与 .o 类似,多个 .o 的集合 类似 windows 下 lib.

功能

等我把环境搭建起来在打算看添加点什么功能

本来是没打算做的因为python不熟又没太多精力,但是深度学习没python又不行又不会c++,没内容识别模块的话感觉少点什么,最近把java加载模型的问题找到了解决办法,但是很多图片处理的东西又不是单靠加载个模型就可以解决的(例如u2net抠图类的),java先入为主熟悉点吧,用python单独写个工具类还行搞个网站有点吃力还费精力,后面看java搞电有趣合适的图片工具再整合进来。

功能点大概都是之前费了很多业余时间如下门,这里算整合了下做个记录。

相关推荐
panbook1 小时前
从0到1实现一个分布式时序数据库(三):主从复制、故障检测与切换
后端
上线再说1 小时前
图片从 8.2MB 压到 296KB:我把小程序图片链路的账单拆了一遍
后端
dpharness1 小时前
我原以为 MCP 装完就能用,直到工具列表是空的
后端
dpharness1 小时前
153 个 MCP 服务,我把工具数一个个数了一遍
后端
打工仔折腾 AI4 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
SomeOtherTime4 小时前
Rust 闭包语法和原理(AI回答)
开发语言·后端·rust
初学AI的小高5 小时前
Agent 工具太多怎么办:BM25 检索、依赖补全与按需加载实战
后端·agent
用户6602676118795 小时前
AI 代码上线前的第 24 道门禁:上线失败时,怎样在 10 分钟内退回?
后端·架构
NishikiAsumi07215 小时前
一次170万行的导出:sql优化远没有加索引这么简单
后端