com.caucho.jsp.JspParseException: javac: 无效的标记: IDEA.app/Contents/lib/idea_rt.jar

1 篇文章 0 订阅
1 篇文章 0 订阅

一、问题描述

Mac Book 使用Idea 使用Resin服务器开发时,遇到了这么一个问题。

[2019.11.14 18:26:26.018]>>>>Xss(Exception):sw=com.caucho.jsp.JspParseException: javac: 无效的标记: IDEA.app/Contents/lib/idea_rt.jar:/Users/xxx/Library/Caches/IntelliJIdea2018.3/captureAgent/debugger-agent.jar ....[2019.11.14 18:26:26.021]用法: javac <options> <source files>
[2019.11.14 18:26:26.021]-help 用于列出可能的选项

一个时间跨度比较大的项目,使用了JSP,web服务器使用的Resin 3.1.81

Resin本身需要使用jdk环境,而不是jre环境。初次访问某jsp文件时,会进行编译(上述抛出的异常也说明了这个问题)。

二、问题定位

此错误明显是javac命令使用不当造成的,javac也提示了无效的标记,说明命令中存在非法字符(此处估计使用了Runtime去执行javac进行的编译操作)。

那么就debug找到执行此部分的代码,如图:
在这里插入图片描述
接下来的事情就简单了,复制到一个文本编辑器,查找异常信息中最前面的一段IDEA.app/Contents/lib/idea_rt.jar,结果如下:
在这里插入图片描述在这里插入图片描述
到这里问题就很明显了,因为IntelliJ Idea.app在我的xos系统上有个空格,而且执行时没有将像图一那样进行URL编码%20,所以出现了此问题。

三、解决

因为是Resin中的jar,不想去改源码打包,所以把APP中的空格去掉了。IntelliJ IDEA.app重命名为IntelliJIDEA.app

IntelliJ IDEA.app 改为 IntelliJIDEA.app

其他解决办法也很多,比如用%20代替空格,用引号将带空格的字符串引用都可以解决。

发现这个问题的解决后让我有点难受,所以写篇博客记一下。

34FA0B8B9A38EF653AF65DB0D9D7EE28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值