Maven在jar文件的根目录中打包图像

伙计们, 我正在使用Eclipse开发Java应用程序。 Maven用于创建最终的jar文件。 在应用程序中,我使用一些图像图标作为按钮。 按照Internet上的一些说明,我通过单击项目创建了一个“源”目录。 我将源目录命名为“res”,并将我的图像移动到此目录。 public static ImageIcon getIcon() { if (isThisJarfile()) { URL url = this.class.getResources(“/res/myicon.png”); return new ImageIcon(url); }else { return new ImageIcon(“/res/myicon.png”); } } 当应用程序未打包为jar文件时(这非常适合调试),这可以正常工作。 但是,当maven打包它时,我看到图像被放在jar文件的根目录中。 以下呼叫有效: URL url = this.class.getResource(“/ myicon.png”); 我想知道是否有一些我忽略的步骤。 请注意,我没有必要对pom.xml执行任何特殊操作。 Maven会自动拾取它们(除非它将它们放在错误的位置)。 预先感谢您的帮助。 问候,彼得

JVM可以提供快照持久性吗?

是否可以转储正在运行的JVM的映像,然后通过将映像加载到JVM中来恢复以前的状态? 我相当肯定答案是消极的,但我会喜欢错。 随着JVM可用的所有动态语言增加了交互性,能够保存编码会话将有助于节省手动将VM还原到先前会话的时间。

Spring Data JPA与findBy / findAllBy的区别

在以下之间使用Spring Data JPA关键字时是否有任何区别: List findBySomeCondition(); 和 List findAllBySomeCondition();

用随机数填充数组

我需要使用构造函数创建一个数组,添加一个方法来将数组作为一个序列打印,一个方法用double类型的随机数填充数组。 这是我到目前为止所做的: import java.util.Random; public class NumberList { private static double[] anArray; public static double[] list(){ anArray = new double[10]; return anArray; } public static void print(){ for(double n: anArray){ System.out.println(n+” “); } } public static double randomFill(){ Random rand = new Random(); int randomNum = rand.nextInt(); return randomNum; } public static void main(String args[]) […]

JFileChooser打开多个txt文件

如何使用JFileChooser打开两个文本文件,在我选择这些文件后,我想比较它们,在屏幕上显示等等。这可能吗?

JPanel keylistener

我正在尝试添加一个包含JTabbedPane的密钥监听器。 它应该在收到ctrl + tab时切换标签。 但是keypressed事件从未发送过我尝试将其添加到面板和选项卡式对象 – 但没有成功。 这是我的代码 SwitchTabsListener ctrlTabListener = new SwitchTabsListener(genericTabbedPanel); jMainFrame.addKeyListener(ctrlTabListener); genericTabbedPanel.addKeyListener(ctrlTabListener);

从不同的地方向swing JTextArea发送消息

我有一个JTextArea总是在我的主应用程序窗口中显示(如果你愿意,可以使用日志),我想用它来显示系统中正在进行的活动(比如你用System.out.println做的模拟调试输出)( )如果条件或其他) 我指的是用户所做的高级事情(例如“成功加载文件”或“写入磁盘”,“已完成”等) 事情是这样的消息可以在我的系统中的任何地方生成,主要在另一个包中处理数据和计算的包,并且他们不知道GUI。 也许将消息保存到临时文件中并且textarea“监视”该文件的更改,如何才能完成?

如何解决ClassNotFoundException:com.mongodb.connection.BufferProvider?

我正在尝试编写简单的java代码,它在控制台上显示MongoDB集合。 我在我的类路径中添加了mongodb-driver-3.0.0.jar。 但是当我尝试执行代码时,它会在数据库连接线上给出以下错误: 线程“main”中的exceptionjava.lang.NoClassDefFoundError:com /chintan.app.MongoDbJdbc.main中的com / mongodb / connection / BufferProvider(MongoDbJdbc.java:12)引起:java.lang.ClassNotFoundException:com.mongodb.connection位于java.net.URLClassLoader的java.net.URLClassLoader $ 1.run(未知来源)中的.BufferProvider $ java(java).URLClassLoader.findClass中的java.security.AccessController.doPrivileged(本地方法)$ 1.run(未知来源)来自java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)… 1 more 以下是我的代码片段: public static void main(String[] args) { MongoClient mongoClient = new MongoClient(“localhost”, 27017); //Exception @SuppressWarnings(“deprecation”) DB db = mongoClient.getDB(“mydb”); System.out.println(“Database connection successfull.”); … … } 这里有什么问题? 我是否需要在类路径中添加另一个jar或者有一些版本问题?

如何将dicom文件转换为jpg转换

我们如何使用java将dicom文件(.dcm)转换为jpeg图像? 这是我的代码: import java.io.File; import java.io.IOException; import org.dcm4che2.tool.dcm2jpg.Dcm2Jpg; public class MainClass { public static void main(String[] args) throws IOException{ Dcm2Jpg conv = new Dcm2Jpg(); conv.convert(new File(“C:\\Users\\lijo.joseph\\Desktop\\Dicom\\IM-0001-0001.dcm”), new File(“C:\\Users\\lijo.joseph\\Desktop\\Dicom\\IM-0001-0001.jpg”)); } } 并且我在运行项目时收到以下错误 Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException at MainClass.main(MainClass.java:7) Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException at java.net.URLClassLoader$1.run(URLClassLoader.java:372) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:360) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at […]

模拟泊松等待时间

我需要模拟泊松等待时间。 我发现了许多模拟到达次数的例子,但我需要模拟一次到达的等待时间,给定平均等待时间。 我一直在寻找这样的代码: public int getPoisson(double lambda) { double L = Math.exp(-lambda); double p = 1.0; int k = 0; do { k++; p *= rand.nextDouble(); p *= Math.random(); } while (p > L); return k – 1; } 但这是到达人数,而不是到达时间。 效率优于精确度,更多是因为功耗比时间。 我正在使用的语言是Java,如果算法只使用Random类中可用的方法,那将是最好的,但这不是必需的。