Tag: 资源

在productionMode中,VAADIN找不到主题

我在我的VAADIN应用程序中有src / main / webapp / VAADIN / themes / mytheme /文件mytheme.scss和styles.scss的自定义主题。 当weba中的vaadin productionMode部署参数设置为false时,一切正常。 当我将参数设置为true时,突然Vaadin无法找到我主题的资源并继续抱怨: Requested resource [/VAADIN/themes/mytheme/styles.css] not found from filesystem or through class loader. Add widgetset and/or theme JAR to your classpath or add files to WebContent/VAADIN folder 我没有/ WebContent目录,而是/ webapp,因为它是一个maven web-app项目。 我尝试将VAADIN文件夹放到: 的src / main /资源 的src /主/ web应用 的src /主/ web应用/ […]

加载相对于执行jar文件的文件

这个问题说明了一切。 我的特殊情况是当前的工作目录不是jar文件的位置,而是c:\Windows\system32 (我的jar文件是由windows使用右键菜单启动的,我想传递文件夹的路径为jar的参数)。 现在我想加载一个名为config.xml的配置文件,它与jar在同一个文件夹中。 当然,该文件的目的是为jar提供设置。 对我来说重要的是xml文件在jar文件之外以便于编辑。 我很难加载该文件。 Windows执行该行 cmd /k java -jar D:\pathToJarfile\unpacker-0.0.1-SNAPSHOT-jar-with-dependencies.jar 使用cmd /k调用整个事件会使windows命令提示符处于打开状态,以便我可以看到jar的输出。 我不能使用new File(“.”)或System.getProperty(“user.dir”)作为相对路径,因为这些函数返回C:\Windows\system32\. 和C:\Windows\system32分别(这是Windows执行AFAIK所有内容的工作文件夹)。 我对Launcher.class.getResourceAsStream(“/../config.xml”)也没有成功。 由于该路径以/开头,因此搜索从jar的根节点开始。 转到../config.xml指向该文件,但该调用返回null 。 有人能指出我正确的方向吗? 我真的被困在这里了。 这个文件加载的东西真的每次都让我烦恼…… 我自己的要求: 我不想在java源代码中硬编码路径 我不想将文件的路径作为参数传递给java -jar调用(既不作为main(String[] args)也不是使用-Dpath=d:\…来设置系统属性) 除了原来的问题,我还有很难将maven2放到Class-Path: . 进入MANIFEST.MF (BalusC发布的解决方案)时使用jar-with-dependencies 。 问题是该行出现在常规jar的MANIFEST文件中,但不是jar-with-dependencies.jar的MANIFEST文件(生成了2个jar文件)。 对于任何关心我如何做的人: maven-assembly-plugin 2.2-beta-5 ${mainClass} true <!–at first, i tried to place the Class-Path entry right here using . see […]

如何使用eclipse将图像添加到java项目中?

我已经围绕SO和Google链接做了很多阅读。 我还没弄明白如何正确地将图像添加到eclipse gui项目中,系统会识别它找到它。 我知道有一些关于CLASSPATH的mumbojumbo但它可能不应该这么难做。 首先让我描述一下我正在做的事情……(如果有人能够纠正我,那就更感激了。) 这是我的方法。 我使用“导入向导”(右键单击,“导入”,“常规”,“文件”)将图像添加到“导入目录”中,我称之为“/ resources” Eclipse在eclipse包资源管理器的树视图中自动创建一个名为“resources”的文件夹。 在“参考图书馆”条目下。 注意,“resources”不在“Referenced Libraries”下,它位于树中的同一级别。 然后我使用以下代码: ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); InputStream input = classLoader.getResourceAsStream(“/resources/image.jpg”); Image logo = ImageIO.read(input); 在这一点上,我运行测试程序并得到此错误: Exception in thread “main” java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(Unknown Source) at Test.main(Test.java:17) 在此先感谢您的帮助!

getResourceAsStream()地狱

有人可以解释我.getResourceAsStream()是如何工作的。 我试图弄清楚痛苦的事实,在某些情况下getClass()。getResourceAsStream(name); 在eclipse中可以正常工作,但在部署版本(NPE)中则不行。 我面临的另一个事实是,有时候getClass()。getResource(name); 返回一个完全有效的url但getClass()。getResourceAsStream(name); 返回null。 有人写了一个库,我只是传递包(路径)和文件名并接收流而没有唠叨? 编辑:这是一般的,每次我必须使用getResourceAsStream()时影响我。 是的,我可以提供一个针对实际情况的代码,但是直到我不理解getResourceAsStream是如何工作的,这对下一次没有帮助。 编辑2:有什么区别: MyClass.class.getResourceAsStream(…) this.getClass().getResourceAsStream(…), MyClass.class.getClassLoader().getResourceAsStream(…) Thread.currentThread().getContextClassLoader().getResourceAsStream(…) 编辑3:此外,虽然some.package.SomeClass.class.getResourceAsStream(“/path/only/holding/resource.files”)无法在类路径中加载资源,不包含类而只包含文件。 这个变种能够做到这一点: ClassLoader.class.getResourceAsStream(“/path/only/holding/resource.files”)这让我很困惑,所以我真的会喜欢spring和URI一样的架构类路径:

从JAR或文件系统加载ImageIcon

我有一个需要显示图像的简单程序。 我知道如何从Eclipse运行代码,我知道如何从JAR文件运行它,但我想要一个适用于这两种情况的解决方案。 Eclipse项目是这样的: – Project (java) – src – controller – Main.java – ui – Display.java – images – image.jpg 在Eclipse中工作的代码片段: ImageIcon image = new ImageIcon(“images/image.jpg); 适用于JAR的一个(全部在一个JAR文件中): java.net.URL imgURL = getClass().getResource(“/images/image.jpg”); ImageIcon image = new ImageIcon(imgURL); 为了获得在两种情况下都能工作的单个代码,我需要更改什么?

如何从.jar加载文件夹?

好。 所以我有一个非常简单的问题:我希望能够从正在运行的.jar文件中加载资源(整个文件夹),但我无法让它工作。 这是我尝试过的(如果类名是“myClass”,文件夹名为“myFolder”),但它总是抛出NullPointerException: URL folderURL = myClass.class.getClassLoader().getResource(“myFolder/”); String folderPath = folderURL.getPath(); File myFolder = new File(folderPath); 在创建“myFolder”之前,总是抛出NullPointerException。 更多信息:我必须从静态上下文访问该文件夹。 正在访问该文件夹的类与文件夹本身所在的目录不在同一目录中。(该文件夹位于jar内的根目录中,该类是几个子包。) 有没有人能解决我的问题? 对不起,如果我使用了错误的术语:P,但您可以做任何事情来帮助我们。

在Eclipse中调试Java时如何使getResourceAsStream工作?

这是令人难以置信的……当我在包含文本文件的打包JAR文件上运行Java时,我可以使getResource()和getResourceAsStream()正常工作。 (供参考,请参阅有关访问资源的Sun文档)当我在Eclipse中运行它时,我似乎无法使相同的程序正常工作,即使我已将我的文本文件放在与编译的.class文件相同的树中 你们其中一个人可以指出我的任何细微之处,以确保getResource()和getResourceAsStream()函数正常工作吗? 我有预感它与CLASSPATH和/或Eclipse将.class文件自动编译。 (我注意到当我运行Ant时,它会编译自上次Ant构建以来已更改的所有Java文件,即使Eclipse已经编译了这些Java文件。)

如何正确地在Jar中打包资源

我知道还有其他问题针对同一个问题,但问题是解决方案对我不起作用。 我有一个小工具应该读取我想拥有的文件并打包为资源并依赖于其他项目(我使用Eclipse Helios),我喜欢将它作为jar子而不是单个类。 作为Eclipse中的应用程序,我可以通过访问我的资源 String path = MyClass.class.getClassLoader().getResource(“resources/” + name + “.SOURCE”).getPath(); System.out.println(path); File file = new File(MyClass.class.getClassLoader().getResource(“resources/” + name + “.SOURCE”).toURI()); defaultSource = readSOURCEFile(file); 当且仅当我将resources文件夹放在输出路径(编译源)下时,如果我将它放在我的src文件夹中。 当我打包项目时,根文件夹或类文件夹中的资源根本不打包。 如果我在我的src文件夹中有资源,它将被打包在src / resources下。 我使用Export – Runnable Jar,我做错了什么? 如果我尝试使用Export – Jar,我可以正确打包我的源代码和资源,但是我在设置主类时遇到问题而无法执行jar。 清单是正确的,class级在那里:-(。 第二个问题:在打包的jar中我得到错误:URI不是分层的(在我手动移动jar中的资源后我可以执行jar) 提前致谢! 我已将源链接到工作区是一个问题?

使用java从jar作为资源播放.wav文件

我想使用java代码播放.wav文件,该代码在jar文件中作为资源。 我的代码看起来像这样 – try { URL defaultSound = getClass().getResource(“/images/ads/WindowsNavigationStart.wav”); // getClass().getSy.getResource(“/images/ads/WindowsNavigationStart.wav”); File soundFile = new File(defaultSound.toURI()); AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile); Clip clip = AudioSystem.getClip(); clip.open(audioInputStream); clip.start( ); } catch (Exception ex) { ex.printStackTrace(); } WindowsNavigationStart.wav文件存在于我的一个jar文件中。 但得到以下例外 – java.lang.IllegalArgumentException: URI is not hierarchical at java.io.File.(File.java:363) at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder.btnUpFolderActionPerformed(Unknown Source) at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder.access$000(Unknown Source) at au.com.webscan.wwwizard.app.admin.customfile.UpOneLevelFolder$1.actionPerformed(Unknown Source) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) […]

访问JAR资源

我有一个jar文件,其中包含我要分发的资源(主要是缓存,日志记录等配置)。 我对这些资源的相对路径有问题,所以我做了我在另一个stackoverflow问题中发现的问题,该问题说这是一种有效的方法: ClassInTheSamePackageOfTheResource.class.getResourceAsStream(‘resource.xml’); 可悲的是,这不起作用。 有任何想法吗? 谢谢! PS:显然我不能使用绝对路径,如果可能的话我想避免使用环境变量