草庐IT

Java 断言从可运行对象调用时不发送到控制台

在我的程序中,我从一个可运行的程序中创建了一个断言——它的计算结果为假,但从未看到任何关于该断言的控制台输出。我想知道我的断言是否为假,但似乎runnable正在捕获所有抛出的断言?下面是我可以编写的最简单的示例程序来演示。(断言已启用。如果未启用断言,程序将表现不同,并打印两行而不是仅打印一行)。程序的输出是。即将断言为假就是这样。在那之后,断言语句抛出并被某些东西捕获,我从来不知道。我想知道,我做错了什么?importjava.nio.ByteBuffer;importjava.util.concurrent.*;importjava.awt.event.ActionListene

java - 可运行和 lambda

我可以使用lambda创建一个简单的Runnable,例如:Runnablerunnable=()->{Stringmessage="Thisisanhardcodedstring";System.out.println(message);};上面代码的局限性在于它创建了一个带有默认构造函数(没有参数)的Runnable。在实践中,Runnable经常在创建时获取信息,如下所示:classMyRunnableimplementsRunnable{privatefinalStringmessage;publicMyRunnable(Stringmessage){this.message=

java - 使用匿名可运行类代码进入死锁状态,但使用 lambda 可以正常工作

我正在尝试找出下面提到的代码背后的原因。在这里,如果我使用匿名内部类创建Thread,它会进入死锁状态,但使用lambda表达式它可以正常工作。我试图找到这种行为背后的原因,但找不到。publicclassThreadCreationTest{static{newThreadCreationTest();}privatevoidcall(){System.out.println("Helloguys!!!");}publicThreadCreationTest(){//whenweusethisthreaditgoesindeadlockkindofstateThreadthread1

java - 在 netbeans 中正确打包可运行的 Jar 项目

所以我的任务是创建一个显示媒体文件列表的小程序,并分别使用默认的OS媒体播放器运行这些媒体文件。我目前的解决方案是创建一个包含所有媒体文件的包,例如:-com.media|_a.mp4|_b.mp4以下代码将选定的mp4复制到临时目录,然后运行默认的os媒体播放器:publicFilecopyTempMedia(FiletempAppFolder,StringvideoName){URLf=getClass().getResource(String.format("%s/%s",Constants.MEDIA_LOCATION,videoName));Filefrom=newFile(

java - 将可运行的 Java 类导出到 .jar 文件,仅包括必需的依赖项

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtodeterminewhichclassesareusedbyaJavaprogram?我在Eclipse上有一个Java项目,其中包含很多Java类。我想将其中一个导出到.jar文件,但遇到了一些问题。我已经通读了一些现有的主题,但没有得到满足我要求的正确答案,因为:如果我选择“导出到JAR文件”,我会导出正确的类,但.jar文件不包含运行jar文件所需的依赖项。如果我选择“导出到可运行的JAR文件”,生成的jar文件将包含所有依赖项,但也会放入整个项目中的所有其他类(包括我不需要的那些)。如何将单

java - 在 @Rule 中并行化测试执行

我想重用一些集成测试来进行负载测试。我实现了一个由注释参数化的规则:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public@interfaceParallel{intinvocations()default1;intrampUpTime()default0;}在我的规则实现中,注释被评估并设置了一个语句,它有一个像这样的评估方法:@Overridepublicvoidevaluate()throwsThrowable{ScheduledExecutorServiceexe=Executors.newSch

java - 可运行的 jar 如何在运行时加载外部 xml 文件?

(这似乎是一个足够微不足道的问题,但卡住了2天:()我有一个可运行的jar(使用mavenassemblyplugin创建)。jar中的类在类路径中查找xml文件。但是,我们不想将xml文件捆绑在jar中,而是希望将其外部化。尝试到现在:在运行时设置类路径:java-classpath./conf-jarmy-jar-with-dependencies.jar==>不加载(conf文件夹包含xml)在汇编器插件中设置类路径maven-assembly-pluginmake-assemblypackagesinglecom.xxx.Testtrue./conf/jar-with-depe

java - 带有 jvm args 的可运行 jar

我正在尝试使用Eclipse创建一个可运行的jar文件。问题是我在Eclipse中添加到运行配置的vm参数没有以任何方式保存。我知道我可以创建一个批处理文件来运行带有所需参数的jar,但我更希望我的用户只运行jar本身。因此,我的问题是,有没有什么方法可以不通过命令行将vm参数传递给可运行的jar? 最佳答案 简而言之,如果没有某种形式的包装器,您将无法做到这一点。您可以编写.bat文件和/或.sh脚本以通过适当的设置调用JVM。您可能还想查看JavaServiceWrapper,它提供了一种用可执行参数包装.jar并让它作为独立的

java - 如何在可运行但没有堆栈跟踪的 Java 线程中进行解释?

我正在调试遗留Java应用程序,线程转储(通过jstack获得)包含如下一些条目:"Thread-8"prio=10tid=0x0000000055f2c800nid=0x49bfrunnable[0x0000000000000000]java.lang.Thread.State:RUNNABLE就是这样。没有堆栈跟踪。这是怎么回事?如何定位在此线程中执行的Java代码? 最佳答案 线程没有(或没有)执行Java代码。它正在处理未由任何Java调用者直接请求的未在Java中实现的任务。例如,如果相应的OS线程刚刚捕获到一个信号。

java - 使用可运行的 jar 文件执行时如何解决多线程的 Java 问题?

我开发了一个JavaSwing应用程序,它使用SwingWorker类来执行一些长时间运行的任务。当应用程序从IDE(Netbeans)运行时,我可以毫无问题地同时启动多个长时间运行的任务。我为应用程序创建了一个可运行的jar文件,以便能够从IDE外部运行它。从这个jar文件运行的应用程序运行良好,唯一的异常(exception)是它不允许我同时启动2个长时间运行的任务。任务只是一个接一个地运行。我设法创建了一个非常简单的程序来演示这个问题。link该程序使用一个swingworker,它只是从1循环到100,并将数字写入控制台。这两个按钮启动两个执行相同操作的线程。如果我在netbe