JHipster单元测试异常解决(一):Caused by: java.nio.file.InvalidPathException: Illegal char <“> at index 0

使用JHipster框架的过程中,经常会遇到需要使用单元测试的情景,在windows系统中,由于环境变量配置的原因,会遇到一些错误,如下:

org.testcontainers.containers.ContainerLaunchException: Container startup failed

    at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:322)
    at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302) 

通过异常处的代码追踪,可以找到报错的原因:

可以看出jdk的bin目录和jre/bin目录,前后各自多出了一个双引号字符串,造成这种现象的原因是什么呢?

通过获取这些参数的Java代码可以看出,其底层原理就是获取了Windows系统中的环境变量的Path值,做了一个拆分:

System.getenv("PATH").split(Pattern.quote(File.pathSeparator))

Windows环境变量编辑(win10搜索编辑系统环境变量):

C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;"%Java_Home%\bin;%Java_Home%\jre\bin;";

 通过上文的"%Java_Home%\bin;%Java_Home%\jre\bin;"可以看出,path变量中确实多出了前后的双引号。

那么解决的办法也就呼之欲出了,把java路径的bin和jre/bin做一个拆分即可。

这时候我们去调用单元测试,会发现程序依旧会报同样的错误,那么怎么办呢,答案是重启电脑即可!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Caused by: java.nio.charset.MalformedInputException: Input length = 1是一个错误信息,在启动springboot项目时可能会出现。这个错误通常是由于字符编码不统一导致的。 解决这个问题的方法有以下几种: 1. 将application.yml文件的编码格式改为UTF-8。 2. 如果你的application.yml文件是通过把其他类型的文件后缀名直接改为yml生成的,那么你需要将application.yml中的内容复制并删除,然后新建一个application.yml文件,并将复制的内容粘贴进去。这样运行项目就不会报错了。 3. 从根本上解决问题:进入IDEA的设置中,找到Editor -> File Encodings,将编码格式修改为正确的格式,如UTF-8。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [java bug汇总——Caused by: java.nio.charset.MalformedInputException: Input length = 1](https://blog.csdn.net/qq_44633541/article/details/124948573)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [springboot Caused by: java.nio.charset.MalformedInputException: Input length = 1](https://blog.csdn.net/yaoyulan21/article/details/114369416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值