首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过相对路径作为图像加载包外部的Java文件(JavaFX)

通过相对路径作为图像加载包外部的Java文件(JavaFX)
EN

Stack Overflow用户
提问于 2016-07-23 16:47:37
回答 1查看 6.6K关注 0票数 2

我试图在JavaFX中制作一个简单的菜单。当我试图使用相对路径加载图像时,我会收到以下异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Caused by: java.lang.IllegalArgumentException: Invalid URL or resource not found
  at javafx.scene.image.Image.validateUrl(Image.java:1110)

我正在使用eclipse,尽管这个问题似乎不是eclipse特有的,因为在终端中运行时我收到了相同的异常。此外,由于某种原因,当文件位于包内或src文件夹中(给定路径被适当更改)时,它可以工作。

我当前的活动类Menu.java位于包test.dsp中,该包位于项目中,如下所示:

project/src/test/dsp/Menu.java

我试图访问的文件:

项目/资产/图形/测试/dsp/sslogo.png

我试图访问该文件,假设该路径相对于Menu.java中的当前Menu.java类,并且由于物理目录是project/src/test/dsp/Menu.java,我在相对路径中实现了三次../,以到达项目目录。然后,我简单地将路径放置到图像,如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Image ssLogo = new Image("../../../assets/graphics/test/dsp/sslogo.png",
            2000, 2000, true, true);

我的知识来源于JavaFX API中描述的构造函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public Image(java.lang.String url,
     double requestedWidth,
     double requestedHeight,
     boolean preserveRatio,
     boolean smooth)

url -表示要用于获取像素数据的URL的字符串

我已经搜索了大量的问题,但他们的答案并没有提供一个解决方案,使我目前的案例。我尝试过getResource、getResourceAsStream和外部资源。我检查了通过这些方法返回的URL,没有一个与我提供的路径一起工作,如上面所示。我也尝试了不同的../号码,但还是没有用。无可否认,我可能执行错了,结果没有成功。

  • 为什么这种通过相对路径访问文件的方法不起作用,以及如何在设置当前目录的情况下使其工作?
  • 一般情况下,通过java中的相对路径访问文件的正确方法是什么?特别是当文件在包之外时,例如这种情况?
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- is there a way to include the file into the file path via code in the java class?

  • 在包中保存文件更有效,还是不重要(显然取决于访问包外文件的方式)?
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- is there a more effective means of file access through java?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-23 17:10:22

java中的相对路径从项目的根目录(在您的例子中是" project“目录)开始,而不是从调用url的类开始。因此,您的png文件的相对路径是"assets/graphics/test/dsp/sslogo.png“。

通常,包对相对路径没有影响。

更有效的方法是将图像和其他静态文件保持在不同的目录中,就像您所做的那样。"src“文件夹为.java文件保留。

更新:

正如在那篇文章中所说的:https://stackoverflow.com/a/16122215/6629388

如果您不使用像http:或file这样的协议:在URL开始时,将在(默认)包中搜索资源。因此,在您的示例中,获取文件的好方法是使用以下行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Image ssLogo = new Image("file:assets/graphics/test/dsp/sslogo.png", 2000, 2000, true, true);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38547707

复制
相关文章
如何禁用 Ubuntu 服务器中终端欢迎消息中的广告
如果你正在使用最新的 Ubuntu 服务器版本,你可能已经注意到欢迎消息中有一些与 Ubuntu 服务器平台无关的促销链接。你可能已经知道 MOTD,即 Message Of The Day 的开头首字母,在 Linux 系统每次登录时都会显示欢迎信息。通常,欢迎消息包含操作系统版本,基本系统信息,官方文档链接以及有关最新安全更新等的链接。这些是我们每次通过 SSH 或本地登录时通常会看到的内容。但是,最近在终端欢迎消息中出现了一些其他链接。我已经几次注意到这些链接,但我并在意,也从未点击过。题图是我的 Ubuntu 18.04 LTS 服务器上显示的终端欢迎消息。
星哥玩云
2022/07/24
4.3K0
如何禁用 Ubuntu 服务器中终端欢迎消息中的广告
那些最受欢迎的 Node.js 视图引擎[每日前端夜话0xA7]
Node js 视图引擎就像 Laravel 中的 Blade。其最基本的定义是,视图引擎是帮助我们用比通常更短、更简单的方式编写 HTML 代码并重用的工具。此外,它还可以从服务器端导入数据并渲染最终的 HTML。Node.js 项目中一些常见的视图引擎如下:
疯狂的技术宅
2019/08/15
2.4K0
那些最受欢迎的 Node.js 视图引擎[每日前端夜话0xA7]
在提取 Docker 映像时解决“未找到清单”错误
如果您尝试拉取 Docker 映像并且它显示未找到清单错误,那么您需要了解如何解决它。
网络技术联盟站
2022/03/21
1.5K0
在提取 Docker 映像时解决“未找到清单”错误
第14章_视图
视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。
程序员Leo
2023/08/07
1690
第14章_视图
Django 2.1.7 视图 - 自定义404错误、500错误
上一篇Django 2.1.7 模型管理器 models.Manager 以及 元选项
Devops海洋的渔夫
2019/06/18
2.1K0
Django 2.1.7 视图 - 自定义404错误、500错误
小程序开发找不到appjson_appjson文件内容错误未找到
– 问题原因: 导入微信开发者工具后project.config.json文件被微信开发者工具修改,缺少代码:“miniprogramRoot”: “./dist”从而导致微信开发者工具无法找到app.json文件进而报错:app.json: app.json 未找到,所以需要找到app.json 文件所在的文件夹,然后在project.config.json文件里写上aap.json的路径重新运行即可。
全栈程序员站长
2022/11/04
3K0
小程序开发找不到appjson_appjson文件内容错误未找到
ASP.NET Core 5.0 MVC中的视图分类及使用——布局视图、启动视图、导入视图、详细视图、分部视图
我们可以在这个页面,添加一些全局性的内容,比如全局变量等,然后在具体View页面使用这些变量值
明志德道
2023/10/21
4030
ASP.NET Core 5.0 MVC中的视图分类及使用——布局视图、启动视图、导入视图、详细视图、分部视图
python中的各种符号(欢迎补充)
和py小朋友交易久了,发现小py的花样太多了,经常会遇到陌生的小玩意,这里专门开一篇整理一下py的那些小符号,以供将来参考使用:
全栈程序员站长
2022/09/05
9710
bash: rsync: 未找到命令
今天学习了rsync的同步操作,本打算往服务器同步一些数据,于是报了一下错误: ➜ ~ rsync -r /Users/Apple/index.html root@1.1.1.1:/var/www/html/ bash: rsync: 未找到命令 rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12
肓己
2021/08/12
2.6K0
asp网站访问调试 报错 数据库连接出现错误未找到提供程序
asp站点调试,一般就是权限、父路径、32位应用程序池、dotnet 版本和是否classic,数据库连接要显性指定端口、temp目录权限,没其他的了注意事项了,这样描述太经验主义了,那技术点描述,以temp目录权限为例,访问的时候报
Windows技术交流
2021/09/23
2.6K0
错误页面定制与视图传递多个参数
一、错误页面定制 视图函数 <span class="hljs-meta">@app.errorhandler(404)</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">page_not_found</span><span class="hljs-params">(e)</span>:</span> <span class="hljs-keyword">
星哥玩云
2022/09/14
1K0
第6章—渲染web视图—使用Apache Tiles视图定义布局
Tiles是一个免费的开源模板Java应用程序的框架。基于复合模式简化的用户界面的构建。对于复杂的网站仍是最简单、最优雅的方式与任何MVC技术一起工作。Struts2对Tiles提供了支持,如今Tiles发展已有13个年头,成为Apache的一个独立项目,我们可以单独使用Tiles来构建用户界面布局。
Dream城堡
2018/09/10
5450
第6章—渲染web视图—使用Apache Tiles视图定义布局
iOS 系统中的视图动画
动画为用户界面的状态转换提供了流畅的可视化效果, 在 iOS 中大量使用了动画效果, 包括改变视图位置、 大小、 从可视化树中删除视图, 隐藏视图等。 你可以考虑用动画效果给用户提供反馈或者用来实现有趣的特效。
beginor
2020/08/10
2.2K0
第23章、存储程序和视图
本章讨论存储的程序和视图,这些数据库对象是根据存储在服务器上供以后执行的SQL代码定义的数据库对象。
幺鹿
2018/08/21
1K0
Django 教程 --- Django中的视图
Django视图是Django M V T结构的重要参与者之一。视图是用户界面,即您呈现网站时在浏览器中看到的内容。它由HTML / CSS / Javascript和Jinja文件表示。根据Django文档,视图函数是一个Python函数,它接受Web请求并返回Web响应。此响应可以是网页的HTML内容,重定向,404错误,XML文档或图像(Web浏览器可以显示的任何内容)
公众号---人生代码
2020/05/26
3K0
Django 教程 --- Django中的视图
21. Django 2.1.7 视图 - 自定义404错误、500错误
上一篇Django 2.1.7 模型管理器 models.Manager 以及 元选项
Devops海洋的渔夫
2022/01/17
1K0
21. Django 2.1.7 视图 - 自定义404错误、500错误
第 5 篇:用视图集,简化你的代码
在 RESTful 架构中,对资源的常规操作无非就是查询、新增、修改、删除等这么几种。为此,django-rest-framework 分别提供了对应通用类视图函数。但是,如果对同一个资源的不同操作逻辑分散在各个视图函数中,从逻辑上来说不太合理,实际中管理起来也不是很方便,还会产生很多重复性的代码。因此,django-rest-framework 引入了视图集(Viewsets),把对同一个资源的不同操作,集中到一个类中。同样的,针对 Web 开发中的常见逻辑,django-rest-framework 也提供了通用视图集,进一步简化开发工作。
HelloGitHub
2021/05/14
8200
点击加载更多

相似问题

实时服务器错误: InvalidArgumentException第137行中的FileViewFinder.php :视图[欢迎]未找到

12

InvalidArgumentException在FileViewFinder.php第137行中:未找到视图[books.edit]

15

Laravel 5 InvalidArgumentException在FileViewFinder.php第137行:视图[.admin]未找到

85

Fileviewfinder.php第137行中的InvalidArgumentException

10

FileViewFinder.php第137行中的Laravel InvalidArgumentException:

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文