试图用ImageIO.read(class.getResource(URL))加载图片,但getResource返回null
我一直和我的好友一起制作了2D游戏,并且通过一些YouTube教程,我一直在学习很多有关基本游戏开发概念的知识.我正在学习的一件事是精灵(对于那些不知道的人,将2D图像渲染到屏幕上)以及如何在游戏中使用它们.我一直在使用ImageIO.read(this.class.getResource(pathToMySprite)),但是似乎getResource()出于某种原因返回null. 我一直在走一小段路径,在它前面添加"/",删除"/",将用户属于dir属性,以查看是否需要整个路径,而我仍在同样的错误. TILE_TEXTURES(System.getProperty("user.dir") + "/textures/tile.png"); //ENTITY_TEXTURES("/textures/entity.png"); private BufferedImage img; private SpriteSheet(String path) { System.out.p
14 2024-04-04
编程技术问答社区
为什么getResource会返回null
我正在尝试访问项目中的文件.但是getResource方法返回null. 这就是我的项目的样子: Thread.currentThread().getContextClassLoader().getResource("assets/xxx.png"); //returns null 以及Eclipse工作区中的项目文件夹看起来像: 为什么?我想在我的资产文件夹中访问文件? 编辑 我创建了一个jar文件,这是jar的内容: 已解决 首先,我有很多图像文件,所以我想在文件夹中组织所有图像.我将资产文件夹放在SRC目录中,最后我能够访问文件. this.getClass().getClassLoader().getResource("assets/xxx.png"); 解决方案 有很多方法可以在JAR文件中添加资源,您可以将其放入SRC中,如果您使用Maven,Ant等...应该能够使用您的原始代码. 使用当前结构,您可以使用以下代码.
10 2024-03-17
编程技术问答社区
在jar文件中使用字节数组来缓存声音
我可以使用Clip"解决方案阅读和播放声音rel =" tag"> javasound 标签Wiki页面.但是,对于经常播放的声音(例如,快速激光枪声,脚步等),每次您想创建新的Clip时,都会打开流并重新阅读文件,这让我感到震惊.因此,我正在尝试将文件读取到byte[]中,然后从缓存中加载它们. 加载零件很容易: // Get a BAIS. ByteArrayInputStream bais = new ByteArrayInputStream(cache.get(fileName)); // Convert to an audio stream. AudioInputStream ais = AudioSystem.getAudioInputStream(bais); 但是,最初将文件内容放入字节数组是一个挑战.问题是我正在尝试从.jar 中的文件中读取的声音 - 因此,使用java.io.File不是一个选项(我了解),以及我的各种解决方案看到(下面的链接)不适
8 2024-03-05
编程技术问答社区
getResources()Android的实现
我刚刚开始学习Android编程,我对方法getResources()提出了疑问. 我注意到,当我创建资源对象时,我要做的就是: Resources res = getResources(); 首先疑问是以下问题,为什么我必须以这种方式进行操作,而我不得使用Java关键字 new ?我不应该这样做: Resources res = new Resources(); 第二个疑问是:在文件的顶部,我导入了资源类. import android.content.res.Resources; 现在我阅读了Android API,它说GetResources()是一种公共抽象方法,如果是抽象的班级实现?如果未声明为静态,我该如何将其称为键入getResources()? 解决方案 您的活动扩展了类 android.app.App.App.activity 这又扩展了类 android.content.content.content.context.context (三个级别类层
6 2024-03-01
编程技术问答社区
Spark应用程序中捆绑在jar中的log4j属性文件被忽略了
我需要从src/resources中读取自定义log4j.properties,这是不起作用的 try{ val inStream :InputStream= className.this.getClass.getClassLoader.getResourceAsStream("log4j.properties"); logCfgProps.load(inStream) } catch { case e: Throwable=> e.printStackTrace() log.error("log.properties file not present") } PropertyConfigurator.configure(logCfgProps) 意味着捆绑在罐子中的log4j被忽略. 我无法触摸Spark Home中的conf目录中的log4j属性. 其他选项是什么? 编辑 一定有问题(在班级路径中?) 因为这样做
0 2024-02-29
编程技术问答社区
遍历res/drawable-mdpi中的某些图片
在 >文件夹我有26个字母图像,名为 big_0.png big_25.png . 我想将它们全部添加(并忽略文件夹中的任何其他图像)到哈希地图: private static HashMap sHash = new HashMap(); 最初我正在计划: private static final CharacterIterator ABC = new StringCharacterIterator("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); int i = 0; for (char c = ABC.first(); c != CharacterIterator.DONE; c = ABC.next(), i++) { String fileName = "R.drawable.big_" + i;
14 2024-02-17
编程技术问答社区
在strings.xml中对字符串进行本地化会产生NullPointerException
我的工作计算机安装了日食,因此由于与工作相关的问题而没有Internet连接性,因此所有代码和LogCat文本都已手工键入而不是复制和粘贴,因为我现在安装了Eclipse的单独笔记本电脑.因此,请忍受我的任何错别字. 现在解决这个问题.在我的应用的新版本中,我将其支持西班牙语.我将所有字符串定位在strings.xml中.以下是我不愿实施的Java代码. public class SplashScreen extends SwarmActivity { Context c; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splashscreen); loading = (TextView)findViewById(R.id.loading); //loadin
16 2024-02-11
编程技术问答社区
getResourceAsStream()返回null
我有一个java .jar库,从那里开始,我正在尝试访问我的Android项目的文件 与: InputStream inputStream = getClass().getResourceAsStream("/folder/data.txt"); someMethod(inputStream); // inputStream is null 但是inputStream始终是null.我对应该放在哪里应该放在哪里 能够从.jar找到它. 在.jar项目中,我可以找到data.txt,在eclipse中进行以下操作: MyProject > properties > java build path > libraries > Add class folder 和此代码: InputStream inputStream = getClass().getResourceAsStream("/data.txt"); // without the folder 这
6 2024-02-10
编程技术问答社区
为一个数组项目获取资源条目名称
我在strings.xml中有一个字符串数组,如下所述: First Second Third Fourth 我需要检索一个项目之一,而不是值(一个,两个,三,四).到目前为止,我知道可以使用GetResourceentryname获得数组的名称: getResources().getResourceEntryName(R.array.spinerArray); 有没有办法获取项目名称? 谢谢. 解决方案 由于这是XML,您将需要一个XML解析器.那么您可以使用 获得名称的值 attributes.getValue("name
24 2024-02-01
编程技术问答社区
ServletContext.getRealPath()是否与Web片段一起工作?
我使用Web片段(Servlet 3 Spec),因此可以加载例如META-INF/resources/access.xml在我战争的/WEB-INF/lib/图书馆中通过ServletContext.getResourceAsStream("access.xml")的文件. 使用ServletContext.getRealPath("access.xml")做同样的事情不起作用(=> null). 规格状态: getRealPath方法采用String参数,并返回String在路径对应的本地文件系统上的文件表示. META-INF/resources jar文件目录中的资源仅在容器已将其从包含的jar文件中解开包装时,才能考虑到getRealPath() 是制造的,在这种情况下必须返回未包装的位置. 我的容器(tomcat)没有解开罐子,这似乎是问题吗? Tomcat如何打开罐子.打包战争时,我应该解开罐子吗? 解决方案 是,getResourcesAs
16 2023-11-27
编程技术问答社区
如何获取getclass()。从静态上下文获取资源()?
我有一个函数,我试图将文件加载到URL对象,因为示例项目是这样说的. public class SecureFTP { public static void main(String[] args) throws IOException , ClassNotFoundException, SQLException , JSchException, SftpException{ File file = new File("/home/xxxxx/.ssh/authorized_keys"); URL keyFileURL = this.getClass().getClassLoader().getResource(file); 我尝试使用SecureFTP.class.getResource,但仍然无法编译. 我是Java的新手,所以我知道我做错了什么. 解决方案 它无法编译,因为getResource将资源名称(a Stri
22 2023-11-09
编程技术问答社区
在Java中获取jLabel图片的URL
我会简短. 我已经放了一个jlbl_show,如果条件我已经为其设置了图像. if(int c==1){ jLbl_show0.setIcon(new ImageIcon(getClass().getResource("/img/wrong.png"))); } else{ jLbl_show0.setIcon(new ImageIcon(getClass().getResource("/img/ok.png"))); } 但是,如今设置了图像,我需要将图像URL带到另一个条件.就像; if(imageURL is "/img/ok.png"){ do somthing } elseif (imgURL is "/img/wrong.png"){ do something } 有办法做到这一点吗? 解决方案 做类似的事情: boolean flag = false; if(someBoolean){ jLbl_show0.setIco
16 2023-10-11
编程技术问答社区
java如何使用getResource()添加图片?
我想在jpanel类中添加图像,我使用方法getResource(),但它返回Exception in thread "main" java.lang.IllegalArgumentException: input == null!,因为我给出的图像文件夹的路径无效,现在我想要如何获得有效的有效路径,我知道这也许真的很容易,这不是我要在这里问的问题,但是我花了很多时间和尝试不同的路径,但它行不通; 在这里jpanel类 import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.IOException; public class Application extends JPanel { private BufferedImage image; public Appli
34 2023-10-11
编程技术问答社区
Java Swing:无法使用getResource加载图像
我试图隔离在尝试将图像添加到类目录中时可能出现的问题. (这样做是这样,当我以可运行的jar导出时,图像包含在软件包中). 所以我已经坐在'c:\ users \ sean \ workspace \ myapps \ src \ src \ testing'中的草莓. 你能建议我想念什么吗? 谢谢! package testing; import java.awt.*; import javax.swing.*; public class IconTest { public static void main(String[] arguments) { JFrame frame1 = new JFrame(); frame1.setTitle("Frame1"); frame1.setSize(500, 500); frame1.setDefaultCloseOperation(JFrame.EX
26 2023-10-11
编程技术问答社区
JAVA getResourceAsStream()文件的真实路径字符串解释
我正在使用NetBeans 8.0.2(我知道已经有v8.2,但是它对我来说有很多错误,所以我回到了v8.0.2),我需要一个字符串路径到我的.obj文件.这样的参数属性: api.parameter("filename", "obj/someFile.obj"); 上面的示例在我的应用程序的先前版本中工作,其中我将其放置在一个名为" OBJ"的文件夹中,与我的.jar文件相同的目录,但是现在我试图将其包含在用代码罐本身: api.parameter("filename", MyClass.class.getResourceAsStream("/someFile.obj").toString()); ...它不再起作用,因为路径字符串解释不是通往文件的路径,它看起来更像是这样: java.io.BufferedInputStream@215d7ea7 ...当然,我的代码期望像普通路径字符串一样,我会以这种伪代码的方式说些什么: api.paramet
12 2023-09-30
编程技术问答社区
在资源文件夹中以字符串形式获取文件的位置
我已经完成了Eclipse的程序,现在我想将其导出为一个可运行的JAR文件.该程序包含一个带有图像和文本文件的资源文件夹.这位于源文件夹下方. res文件未添加到构建路径中,但是当我在Eclipse运行程序时,它仍然有效. 让我感到困惑的是,当我导出它时,RES文件被保存到可运行的JAR文件中,因为我可以使用Winrar打开JAR文件,并且我看到该文件夹​​在其中包含所有对象.但是,当我运行问题时,它会停止在引用资源文件夹的位置.当我手动复制并粘贴RES文件夹旁边的RES文件夹时,请添加我的混乱 现在,我知道这与我在代码中引用文件的方式有关.目前,我像这样 reader = new LineNumberReader(new FileReader("res/usernames.txt")); 这是我想要和访问RES文件夹的方式,而无需任何例外 - 在Eclipse中以及当我将资源文件夹移到JAR文件旁边时. 我希望它正常工作,但是没有罐子文件外的文件夹,我希望它全部
24 2023-08-08
编程技术问答社区
getDrawable返回null
由于我已经对此事提出了最后一个问题,这是因为发布了与我要再次使用正确代码的问题的代码不同的代码... 所以这是交易,我一直在使用Android的Googlemaps API进行一些测试,而当我尝试使用我的一张图像在地图上设置一个自定义的lay,我注意到当我使用GetDrawable to时访问我的图像,它返回了null,即使是日食本身也向我显示了我的图像在我选择哪种可绘制的ctrl+backspace时在那里. 因此,我一直在墙上摔断了几个小时.关于这里有什么问题的线索? 预先感谢:) ps:打印显示日食在我使用ctrl + backspace 代码: import java.util.List; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Bundle; import com.google.android
56 2023-08-08
编程技术问答社区
我应该如何在Java中使用getResource()?
在许多地方都提出了这个问题,并且有无数的变化. (例如 java -getClassloader().getResource()驾驶我bonkers 等等.)我仍然无法做到这一点.工作. 这是代码段: String clipName = "Chook.wav"; ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); // URL url = classLoader.getResource(clipName); URL url = new URL("file:///Users/chap/Documents/workspace/the1620/bin/ibm1620/" + clipName); ais = AudioSystem.getAudioInputStream(url); 这项工作 - 请注意,我已
18 2023-08-08
编程技术问答社区
如何正确使用ClassLoader.getResources()?
如何使用ClassLoader.getResources()从我的类路径中找到递归资源? 例如. 在META-INF"目录"中查找所有资源: 想象 之类的东西 getClass().getClassLoader().getResources("META-INF") 不幸的是,这确实仅检索URL准确的"目录". 所有名为bla.xml的资源(递归) getClass().getClassLoader().getResources("bla.xml") 但这返回一个空的Enumeration. 作为奖励问题:ClassLoader.getResources()与ClassLoader.getResource()? 有何不同 解决方案 没有办法递归搜索类路径.您需要了解资源的完整路径名,才能以这种方式检索它.资源可以在文件系统中的目录中或JAR文件中的目录中,因此它不像执行" classPath"目录列表那样简单.您将需要提供资源的完整路径,
20 2023-08-08
编程技术问答社区
使用getResource()获取资源
我需要在Java项目中获取资源图像文件.我正在做的是: URL url = TestGameTable.class.getClass(). getClassLoader().getResource("unibo.lsb.res/dice.jpg"); 目录结构如下: unibo/ lsb/ res/ dice.jpg test/ ..../ /* other packages */ 事实是,我总是得到文件,因为文件不存在.我尝试了许多不同的路径,但是我无法解决问题. 有提示吗? 解决方案 TestGameTable.class.getResource("/unibo/lsb/res/dice.jpg"); 带领斜线表示classpath的根 斜线而不是路径中的点 您可以直接在课堂上调用getResource() 其他解决方案 而不是明确编写可以使用的类名 this.getClas
24 2023-08-08
编程技术问答社区