【发布时间】:2014-07-22 18:48:32
【问题描述】:
我在 netbeans 中有一个 JAVA GUI 项目(带有调色板)... 主文件夹是“ImageBrowser”。 它有这些文件夹“build”、“dist”、“nbproject”、“src”,以及这些文件“build.xml”、“manifest.mf”。 在文件夹“src”中有文件夹“Icons”、“ImageBrowser” 进入“图标”我有一张图片,在“ImageBrowser”中是来源。
第一个问题
在我使用的源代码中:
ImageIcon icon = new ImageIcon("src/Icons/my_photo_name.jpg");
labelImage.setIcon(icon);
好好看看目录“src/Icons/my_photo_name.jpg” 我向您保证,当我从 netbeans 运行项目时,程序会显示“my_photo_name.jpg”,没有任何问题。
当我制作jar(我在Linux的netbeans中制作)并在windows7中运行它时,程序不显示“my_photo_name.jpg”,显然它找不到它!
你能告诉我为什么吗?
第二个问题
当我在 Linux 终端中运行 jar 时,它是这样的:
Exception in thread "main" java.lang.UnsupportedClassVersionError:
ImageBrowser/Main : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: ImageBrowser.Main. Program will exit.
我会确保你从项目属性中定义了主类....
谁帮助我,谁就救我!!提前致谢!
【问题讨论】:
-
第一个问题,你需要使用资源加载器。第二个问题,您正在尝试使用 java 7 运行 Java 8 文件。
-
1.仅当您从包含该路径的目录中执行 jar 文件时,使用这样的相对文件名才有效。另一个目录(更不用说另一台机器),它不会工作。至于第二个,这意味着您安装了多个版本的 java,并且您正在使用比您要运行的版本更新的版本进行编译。
-
@christopher : 什么是资源加载器,我该如何使用它?
-
@zebediah49:我的朋友,我做错了什么?什么目录可以写,我用这个,从什么文件夹,我可以运行我的 jar....我认为 java 适用于任何平台....我无法理解...正如您在 netbeans找到图像,并且从 jar 中找不到...我必须写什么目录?
-
无论如何感谢大家的快速解答! :)