问题内容: 我在线路42和43的误差:, 未处理的异常类型InterruptedException的 。如果我尝试快速修复,它将使用catch Exception 创建try catch ,它将具有相同的错误,并且将尝试以相同的方式修复它,并继续用try catch包围它。 问题答案: 您已创建一个函数接口,该函数接口的方法声明为引发,这是一个已检查的异常。但是,你叫一个lambda表达式作为参数
问题内容: 我在远程Glassfish服务器和计算机上的应用程序客户端中都有一个EJB模块。我想从应用程序客户端连接到远程EJB。 这是我的EJB接口: 这是我的ejb: 我有几个问题: 我可以在远程应用程序客户端中使用依赖注入来连接到ejb吗?如果是这样,我该怎么做才能做到这一点。我是否需要在sun-ejb-jar.xml和sun-application-client.xml中进行配置?换句话说
问题内容: 就像标题所说的那样,我需要一种方法来停止或中断正在等待套接字输入的阻塞线程。 问题答案: Thread.interrupt()应该是您要寻找的方法。确保您的输入访问方法也检查InterruptedException和ClosedByInterruptException。 另请参阅Sun Concurrency Tutorial 中的相应页面,作为另一种解决方案的建议。
问题内容: 如果我在同步块内创建一个新线程,该块是否将保持锁定状态,直到线程执行完成为止?如果没有,那么直到什么时候才能保持锁定状态? 问题答案: 如果代码d具有新创建的线程,则它将保持锁定,从而等待它完成。由于没有锁,因此在调用完成后将不释放锁定。
问题内容: 我有一个使用Java的项目,我创建了七个记录器,可从该程序的每个位置通过外观进行访问。但是在互联网上,我看到很多例子,每个班级都有一个记录器。 最推荐的记录方式是什么? 问题答案: 每个类中的记录器都更好,更易于扩展。原因是在一类中定义一个记录器很容易将实际的记录API与记录器的配置(格式,持久性)分开。我使用了多个大型复杂的Java软件(> 100万行代码),每个类都使用一个记录器。
问题内容: 我正在玩一些微服务,并在笔记本电脑上运行它们,只需为每个微服务分配一个新端口。问题是我想重新启动其中一个,所以我必须将它们全部关闭,因为在操作系统中,进程都称为java。而且尽管我有时会猜到最后一个启动的pid最高,但这并不是绝对安全的选择… 因此,有没有办法在操作系统中启动Java应用程序并为其分配名称?也许像 问题答案: 如果需要区分不同的Java程序,可以使用jps命令,该命令为
问题内容: 我正在用C ++编写一些JNI代码,以便从Windows XP的applet中调用。我已经能够成功运行applet并加载和调用JNI库,甚至可以在其他DLL中调用它。我通过设置PATH系统环境变量来使其工作,以包括所有DLL所在的目录。 因此,问题在于,我添加了另一个使用新的外部DLL的调用,并且突然在加载库时引发UnsatisfiedLinkError。消息为:“找不到指定的过程”。
问题内容: 我正在使用,而我的Java版本是。我正在Windows Server 2008上以管理员身份运行(Tomcat Java进程和VisualVM)进程。 Tomcat正在与运行,其中作为与运行和。这可能是原因吗? 问题答案: 您需要添加参数以启用到应用程序的连接,因此添加以下参数: 然后,您需要手动添加tomcat进程,因此。 您的tomcat进程将在localhost节点下列出。
问题内容: 整个周末,我将在室友的计算机上运行一种遗传算法,恐怕这种长期运行可能会耗尽内存。但是,我的算法以某种方式工作,可以使修剪不太有用的结果变得相当容易,因此,如果有一种方法可以告诉我程序何时将要用完堆空间,那么我可能可以腾出空间并继续寻找还有一些时间。 当JVM的堆空间用尽时,有没有一种方法可以在OutOfMemoryError之前得到通知? 问题答案: 您可以注册一个javax.mana
问题内容: 情况如下: 我曾被要求使用InstallAnywhere 8(一种基于Java的安装程序IDE),它可以启动和停止Windows服务,但没有内置的方法来查询其状态。幸运的是,它允许您在Java中创建自定义操作,可以在安装过程中随时调用(通过我认为是相当复杂的API)。 我只需要一些可以告诉我特定服务是启动还是停止的信息。 IDE还允许调用批处理脚本,因此这也是一个选项,尽管脚本一旦运行
问题内容: 我有产生新线程的执行主线程。在main()的执行主线程中,我正在调用。何时获得 未处理的异常 类型? 我不确定为什么会得到这个。我以为这是因为我需要对主线程的引用,所以我继续并通过进行了引用。 这不是让线程休眠的方法吗?我需要做的是让主线程等待/睡眠/延迟,直到它再次需要工作为止。 问题答案: 您看到的是编译错误,原因是您没有正确处理检查的异常(在这种情况下)。处理意味着执行以下操作之
问题内容: 我有一个从C调用的Java函数的JNI包装器。我试图从不同的线程调用某些方法,并且在尝试获取JNIEnv指针的新副本时收到错误消息。下面使用m并在每种方法中调用它: 从主线程/初始线程调用JVM时,该JVM已被实例化,并且该(和其他方法)运行。当我获得envRes的值时,在子线程中它保持-2。 问题答案: 请参阅本章的文档。 在使用任何JNI函数之前,您至少需要为每个本机线程调用一次。
问题内容: 我有一个线程可以从缓冲读取器读取字符(该读取器是从套接字创建的,如下所示): 此代码只能运行一次。例如,如果客户端连接并发送此消息:“这是一个测试”和“这是另一个测试”,则主机输出为: 请注意该程序不会收到“这是另一个测试”,因为它停留在读取流上。有什么办法在不减小缓冲区大小的情况下解决这个问题?这是线程的代码: 客户/发送者的代码(不是我的代码): 问题答案: 是一个 阻塞 调用,这
问题内容: 在我的应用程序中,我使用ScheduledExecutorService,但仅产生一个线程来处理计划的任务。这是因为ScheduledExecutorService不会生成线程来处理待处理的任务吗? 这是一个代码片段,将仅输出“ run()1”,而不是预期的“ run()1”,后跟“ run()2” …“ run()10”。 问题答案: 只有一个线程,因为您使用创建线程池,这意味着该线
问题内容: 我有一个注释处理器,用于保留策略= SOURCE的注释。 我不知道如何逐步调试它。 运行mvn install,编译或打包或ant javac时,我已发布了打印语句,记录器信息,并且在编译日志中看到了它们的sysout。 但是,我不知道如何在Eclipse中逐步调试处理器。我的意思是,您如何逐步调试编译时? 问题答案: 您必须使用调试配置从Eclipse调用Java编译器(您需要从“调