使用Fat Jar打包后 Uncaught error fetching image:

一个错误困扰了好多天了, 在Eclipse里运行没有问题,使用 Build Fat Jar打包后,运行启动不了,用java -jar xxx.jar    把jar文件拿出来,总是出现如下错误
Uncaught error fetching image:
JAVA.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(Unknown Source)
at sun.awt.image.URLImageSource.getDecoder(Unknown Source)
at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)

 

找了许多资料,以上是Eclipse中使用Build Fat Jar打包后找不到图像造成的(http://bbs.xml.org.cn/blog/more.asp?name=DMman&id=29167&commentid=60339),

 

   于是按照文章提示修改,依然不可以,由于涉及图片许多,于是放弃了,还是 图片放在JAR包外新建文件夹里,这样程序正常了。

### 解析 Unexpected token '<' 的错误 当遇到 `Uncaught SyntaxError: Unexpected token '<'` 这样的错误,通常意味着浏览器试图解析 JavaScript 文件却遇到了 HTML 或其他非预期的内容。这可能是由于服务器配置不当或者构建工具链中的某些设置不正确所引起的。 #### 可能的原因分析 1. **HTML 被当作 JS 加载** 如果服务器返回了一个 HTML 文档而不是期望的 JavaScript 文件,则会触发此错误。这种情况可能发生在路径配置有误的情况下[^1]。 2. **路由模式问题** 对于 Vue.js 单页应用 (SPA),如果使用的是 history 模式的路由,在 IIS 部署可能会因为 URL 重定向机制而出现问题。更改路由模式可以有效规避此类问题[^3]。 3. **公共资源路径(publicPath) 设置不合理** 构建过程中指定的 `publicPath` 不恰当也会导致静态资源加载失败,进而引发上述错误。确保 `publicPath` 正确指向根目录而非相对路径能够帮助解决问题。 4. **打包后的文件位置不对** 在一些情况下,特别是对于 Vue CLI 创建的应用程序,默认情况下会在生产环境中查找 `/dist` 下面的文件;但如果这些文件被放置到了不同的地方(比如直接放到服务器根目录),则需要调整引入方式来匹配实际的位置[^4]。 #### 推荐解决方案 针对以上提到的各种可能性,建议采取如下措施: - 尝试修改 vue-router 中的历史记录模式为 hash 模式 (`mode: 'hash'`) 来简化部署流程并减少潜在冲突。 - 修改 Webpack 输出配置项 `output.publicPath` 至 `'/'` ,保证所有请求都能找到正确的入口点。 - 若采用 IIS 部署,请确认已经设置了适当的手动 URL 重写规则以支持 SPA 应用。 - 确认打包产物确实位于服务端设定好的访问路径之下,并且可以通过浏览器正常下载到客户端。 通过实施上述策略之一或组合起来的方法,应该可以帮助消除该类语法异常提示。 ```javascript // webpack.config.js 示例片段 module.exports = { output: { publicPath: '/' } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值