Java 执行命令行命令

这个没技术含量的东西耗费了我半个多小时

String command = ....;
Process process = Runtime.getRuntime().exec(command);

一个简单的命令这样执行时没问题的,但是如果参数中存在空格,那么就会出问题

会被分割为不同的参数,使用""包含起来也不行

解决方案:

使用重载的方法

String[]command = ....;
Process process = Runtime.getRuntime().exec(command);

Spring Boot 打包为jar 之后出现问题

比如这段代码本地调试没问题,但是打包之后就报错了

File file = ResourceUtils.getFile("classpath:"+cfgpath); 打包变成jar出错

这个文件本身是存在的(jar包中也有),但是运行的时候是在jar中,获取的路径也是在jar包中

这个方法并不推荐,当然如果是使用war包解压到tomcat部署应该是没问题的(还没尝试)

Spring 推荐我们使用 ClassPathResource来获取,当然使用getFile的接口仍然是会抛出异常的,但是可以使用 classPathResource.getInputStream();

如果我们之前写的接口类型接收的参数是File怎么办

如果文件不是很大,可以考虑使用以下解决方案,直接复制到临时目录即可:

//获取临时文件目录
String folder = System.getProperty("java.io.tmpdir");
File file = new File(folder + File.separator + cfgpath);
file.createNewFile();
//common-lang3
FileUtils.copyInputStreamToFile(inputStream,file);

或者直接把配置文件放在某个固定目录下,然后配置文件里面手动写一下,但是我如果配置文件更新还要手动把配置文件复制到那个目录

最新文章

  1. iOS开发-NSDate使用
  2. 五、CCNode
  3. 黑马程序员——Objective-c特性
  4. 创建维护计划时,提示“代理XP”组件已作为此服务器安全配置的一部分被关闭
  5. IntentFilter
  6. [POJ] 2785 4 Values whose Sum is 0(双向搜索)
  7. setSingleChoiceItems和setPositiveButton两者触发时期
  8. C语言当中的作用域
  9. caffe的matlab接口一览表
  10. [leetcode-506-Relative Ranks]
  11. python介绍篇
  12. [Swift]LeetCode79. 单词搜索 | Word Search
  13. java中的绝对路径和相对路径
  14. 数据库设计,表与表的关系,一对多。One-To-Many(2)
  15. SQL mysql优化
  16. Hibernate 的缓存
  17. 定时器 setInterval(‘function()’, 2000)
  18. Android之判断时间是否为今天
  19. hbase 单机+伪分布环境搭建学习-1
  20. SharePoint2007深入浅出——使用jQuery UI

热门文章

  1. libevent笔记4:Filter_bufferevent过滤器
  2. YYCache 的整体架构类图
  3. 【windows】ping对方ip端口,tcping工具
  4. UML统一建模语言介绍
  5. - instanceof 和 isInstance 强转 类型 class MD
  6. ER图VISIO 引入Mysql 反向工程
  7. 封装:Windows系统文件图标
  8. 配置两个不同kerberos认证中心的集群间的互信
  9. c#中泛型
  10. C# 手写将对象转换为Json方法