首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编译正常运行,打jar运行报错(找不到文件路径

前言 博主个人社区:开发与算法学习社区 博主个人主页:Killing Vibe博客 欢迎大家加入,一起交流学习~~ 问题描述 Maven项目下,从resouces目录下把文件读入内存,例如将...sql文件用文件输入流读入时,编译时运行正常,但打成jar包后运行jar包报错: Exception in thread “main” java.lang.RuntimeException: java.io.FileNotFoundException...(一般不使用绝对路径,可移植性太差) 这个时候,正常去在项目下编译运行时没有任何问题,但我们把这个项目打包成可执行jar时候,在终端运行这个jar包,就会报错,系统找不到指定这个文件路径: 原因就在于此时打包后...jar包默认是在target文件夹下,而我们代码默认工作目录是项目的目录,所以一旦在jar包所在目录运行这个jar包,相对路径就不对了,就会报路径错误。...– 解决方案: 1.把这个jar包移动到工作目录上运行(很笨方法) 2.下面推荐一种做法就是使用类加载器方式引入资源文件 先上代码: InputStream in = DBUtil.class.getClassLoader

2.8K30

规模化运行容器最佳数据存储路径

了解数据在系统中路径,可以揭示低于预期性能潜在来源及其解决方案。...我们认为一个平稳运行IT系统所需CPU、带宽和存储容量,对于优化部署很重要。所以,了解数据在系统中路径,可以揭示出低于预期性能潜在来源及其解决方案。...在K8s中原生运行软件定义存储 市场上有一些纯软件定义存储选择,其中只有少数几个在K8s中原生运行。其中包括独立裸机软件定义存储产品,这些产品被移植到K8s中使用,也支持私有云和混合云部署。...当在K8s下运行时,该方法用特权容器控制客户端和目标设备驱动程序部署,使数据路径不受K8s环境容器化性质影响,并将所有控制和管理平面组件转移到基于原生容器API操作。...当存储架构师通过了解数据路径含义,为容器选择存储,能够在容器化混合部署中让应用更加流畅,获得可扩展、高性能、敏捷存储。

52131
您找到你想要的搜索结果了吗?
是的
没有找到

「问答」解决jar运行时相对路径问题

我这几天需要做一个Java程序,需要通过jar形式运行,还要生成文件。 最终这个程序是要给被人用,可能那个用的人还不懂代码。 于是我面临一个问题:生成文件一定不能存绝对路径。...刚开始我想得很简单,打绝对路径改成相对路径不就行了吗? 于是有了这样代码: String path = ".....但是,放在jar包里面就不行了。 你把代码打成jar包,然后用java -jar 命令运行,你会发现,没有这个文件,不知道它生成到哪里去了。 这是为什么?我也很纳闷。...最后我猜想,命令行运行与Eclipse运行之间环境差异造成,可能它们本身运行环境所在目录就不一样。 所以,我必须找到jar运行路径。...最终打印出路径是: 获取路径成功:LOCATION=/Users/maomao/Documents/eclipse/test.jar 也就是说,这个路径是包含了jar文件名在内,使用时需要注意。

3.1K20

springbootjar为何能独立运行

欢迎访问我GitHub 这里分类和汇总了欣宸全部原创(含配套源码):https://github.com/zq2599/blog_demos 能独立运行jar文件 在开发springboot应用时...再次秀出我蹩脚英文翻译: 使用-jar参数,后面的参数是的jar文件名(本例中是springbootstarterdemo-0.0.1-SNAPSHOT.jar); 该jar文件中包含是class...,这是我们java代码中唯一类,也只真正应用启动类; 所以问题就来了:理论上看,执行java -jar命令JarLauncher类会被执行,但实际上是SpringbootstarterdemoApplication...解压后运行方式叫做exploded mode // 如果是exploded mode,就不能支持通过URL加载jar // 如果不是exploded mode,就可以通过URL加载jar...jar独立运行基本原理已经清楚,探究过程中,除了熟悉关键代码流程,还对jar文件有了更多了解,如果您正在学习SpringBoot,希望本文能给您一些参考; 官方文档 最后附上SpringBoot

70430

springbootjar为何能独立运行

等; 能独立运行jar文件 在开发springboot应用时,通过java -jar命令启动应用是常用方式,今天就来一起了解这个简单操作背后技术; 开发demo 开发一个springboot应用作为本次研究对象...再次秀出我蹩脚英文翻译: 使用-jar参数,后面的参数是的jar文件名(本例中是springbootstarterdemo-0.0.1-SNAPSHOT.jar); 该jar文件中包含是class...,这是我们java代码中唯一类,也只真正应用启动类; 所以问题就来了:理论上看,执行java -jar命令JarLauncher类会被执行,但实际上是SpringbootstarterdemoApplication...解压后运行方式叫做exploded mode // 如果是exploded mode,就不能支持通过URL加载jar // 如果不是exploded mode,就可以通过URL加载jar...从下图可以看出,最终是通过JarFile类成员变量manifestSupplier关联上: 再来看看关键代码执行情况,如下图: 至此,SpringBootjar独立运行基本原理已经清楚

38330

linux运行jar命令_linux部署jar几种方式

大家好,又见面了,我是你们朋友全栈君。 要运行java项目需要先将项目打包成war包或者jar包,打包成war包需要将war包部署到tomcat服务器上才能运行。...而打包成jar包可以直接使用java命令执行。 在linux系统中运行jar包主要有以下几种方式。...一、java -jar XXX.jar 这是最基本jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口,程序也会中断执行。...二、java -jar XXX.jar & &代表在后台运行,使用ctrl+c不会中断程序运行,但是关闭窗口会中断程序运行。...三、nohup java -jar XXX.jar & 使用这种方式运行程序日志会输出到当前目录下nohup.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序执行。

6.9K20

Linq to Sql 更新数据容易忽略问题

越来越多朋友喜欢用Linq to Sql来进行开发项目了,一般我们都会遇到CRUD等操作,不可否认,在查询方面Linq真的带来很大便利,性能方面也表现不错,在插入操作和删除操作中,Linq表现也还不错...context.SubmitChanges(); } 简单代码,大概意思也是获取一个记录,然后更新字段,再submitChanges,大体看看没有错,但是!!!!...大家有没有发觉,我们context是个私有变量,而我们GetUser虽然也是从context中取得,不过它用是它自己context,也就是说对于程序来说,它是两个对象,所以我们这里在submitChanges...时候,无论你怎么改都是没有效果,数据库中始终不会改变,My God ,或许你会觉得这谁不知道啊,但是往往我们真的会忽略这一点,记得以前考试,往往都是难题目基本上全对,但越简单越容易题目,却会经常犯错...,会给项目、公司带来不可预知后果。

1.3K80

.NET 实现启动重定向程序运行路径及 Windows 服务运行模式部署

Main 函数配置 Windows 托管模式演示,其中一个关键点在于 EnvironmentHelper.ChangeDirectory(args); 该方法用于在服务启动运行路径重新指向为程序所在目录...,默认情况下 .NET 程序在命令启动运行路径为执行命令路径比如在 cmd 中执行如下命令: 虽然程序是放在 d:\Publish\ 文件夹中,但是因为我们执行启动程序命令路径是在 c:\User...\ZhangXiaoDong 所以程序启动之后运行环境路径就是 命令执行当前目录,c:\User\ZhangXiaoDong 这时候如果我们代码中有包含一些涉及到操作 程序所在目录 IO 操作就会产生异常...--cd="true"' start= auto 安装成功之后控制台会输出  [SC] CreateService 成功 ,其中 MyAPI 我们创建服务指定服务名称,binpath 即是我们程序路径...MyAPI 停止 net stop MyAPI 卸载命令: sc.exe delete 服务名称 如:sc.exe delete MyAPI 至此 .NET 实现启动重定向程序运行路径

51720

Linux中jar包启动和jar包后台运行实现方式

Linux 运行jar包命令如下: 方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定?...方式二 java -jar shareniu.jar & &代表在后台运行。 特定:当前ssh窗口不被锁定,但是当窗口关闭,程序中止运行。 继续改进,如何让窗口关闭,程序仍然运行?...方式三 nohup java -jar shareniu.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭,程序仍然运行 当用 nohup 命令执行作业,缺省情况下该作业所有输出被重定向到...fg 23 查看某端口占用线程pid netstat -nlp |grep :9181 如果忘了进程号,可以通过如下命令来查看当前运行jar包程序进程号 ps -ef|grep xxx.jar...或者 ps -aux | grep java //关闭进程 kill -s 9 24204 24204代表上一步查出进程ID 总结 以上所述是小编给大家介绍Linux中jar包启动和jar包后台运行实现方式

8.6K22

新手使用 Vue 忽略而导致 Bug

一个萌新在初次独立使用 Vue 这个框架,难免会出现很多意外,我也是在这条路上跌跌撞撞,遇到了很多看似很奇怪 Bug,却怎么也不知道哪里错了。...路由和导航 在 Vue 中,路由一般是由 Vue-router 实现,在主页面中(View)存在一个 router-view 标签,当地址发生改变,仅仅会在 router-view 中部分会被重载...重载动画 router-view 里内容在跳转前后是支持过渡动画,只需要在外层包上一个 transition 标签就 ok 了。...根据 Vue 生命周期, $refs 内元素在 mounted 后才能使用。 在 created() 中如需调用,可以使用 setTimeOut() 特征来实现。...$refs.dom)) 3} COPY Array 内部元素监听问题 在父子组件传参,如果父组件使用数组内元素传参,之后数组内元素在父组件被直接赋值修改,Vue将无法监听到变化。

47530

运行jar几种打包部署方式

java项目开发中,最终生成jar,大概可分为二类,一类是一些通用工具类(不包含main入口方法),另一类是可直接运行jar包(有main入口方法),下面主要讲的是后者,要让一个jar文件可直接运行...这是一个gradle项目(当然,也可以换成ant项目或maven项目,这不重要),里面有二个模块,my-jarDemoApp里提供了main入口方法,通常一个可运行java项目,都会依赖其它一些jar...,中间蓝色jar路径(多个jar之间用:号连接),最后绿色部分是main方法所在类名,按这个思路 把这二个jar包扔同一个目录下,输入如下命令: java -classpath my-jar.jar...,如果是maven项目,请参考  maven: 打包可运行jar包(java application)及依赖项处理 一文 方法三:借助spring-boot 插件 前面二种方法,主程序jar包,与依赖...对应类,最终运行运行过程中,会查找内部lib下依赖jar包my-lib.jar,当然这一切是需要有额外代码来处理,所以多出来org/springframework/boot下一堆class

2.2K20

为什么SpringBoot jar 可以直接运行

用于描述jar信息 lib目录:放置第三方依赖jar包,比如springboot一些jar包 spring boot loader相关代码 模块自身代码 MANIFEST.MF文件内容:...,当我们使用java -jar执行jar时候会调用JarLaunchermain方法,而不是我们编写SpringApplication。...JarFileArchive内部一些依赖jar对应URL(SpringBoot使用org.springframework.boot.loader.jar.Handler处理器来处理这些URL): jar...> run() throws ClassNotFoundException { // 把类名解析成路径并加上.class后缀...SpringBoot在可执行jar包中定义了自己一套规则,比如第三方依赖jar包在/lib目录下,jarURL路径使用自定义规则并且这个规则需要使用org.springframework.boot.loader.jar.Handler

1.2K41
领券