java 相关问题

Java(不要与JavaScript或JScript或JS混淆)是一种通用的,静态类型的,面向对象的编程语言,旨在与Java虚拟机(JVM)结合使用。 “Java平台”是已安装用于开发和运行Java程序的工具的计算系统的名称。将此标记用于涉及Java编程语言或Java平台工具的问题。

ClassNotFoundException:org.sqlite.JDBC

我正在尝试使用 sqlite 为 Android 应用程序设置一个简单的数据库,但出现以下错误: java.lang.ClassNotFoundException: org.sqlite.JDBC 在 java.net.URLClassLoader$1.run(URLClassL...

回答 4 投票 0

使用 jaxb2-maven-plugin 3.1.0 编组旧 xsd 文件时出错

我有一个 xsd 文件,我用它在 Java 8 下使用 jaxb2-maven-plugin 2.5.0 生成 DTO 文件。 现在我迁移到 jaxb2-maven-plugin 3.1.0(由于之前迁移到 Java 11 的原因),我正在...

回答 1 投票 0

关于Java中RejectedExecutionException的初学者问题

最近开始学习基于Java的并发,我在windows(jdk 11)上运行以下代码 导入 java.util.*; 导入 java.util.concurrent.*; 类 TaskWithResult 实现 Callable 最近开始学习基于Java的并发,我在windows(jdk 11)上运行以下代码 import java.util.*; import java.util.concurrent.*; class TaskWithResult implements Callable<String>{ private int id; public TaskWithResult(int id){ this.id = id; } public String call(){ return "Result of TaskWithResult "+id; } } public class TestCallable{ public static void main(String[] args){ ExecutorService exec = Executors.newCachedThreadPool(); ArrayList<Future<String>> results = new ArrayList<Future<String>>(); for(int i = 0;i<10;i++){ results.add(exec.submit(new TaskWithResult(i))); for(Future<String> fs:results){ try{ System.out.println(fs.get()); }catch(InterruptedException e){ System.out.println(e); return; }catch(ExecutionException e){ System.out.println(e); }finally{ exec.shutdown(); } } } } } 每次运行都会出现sanme异常: \\output: Result of TaskWithResult 0 Exception in thread "main" java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@380fb434[Not completed, task = me.rexjz.a.TaskWithResult@21bcffb5] rejected from java.util.concurrent.ThreadPoolExecutor@3cda1055[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1] at java.base/java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2055) at java.base/java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:825) at java.base/java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1355) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at javaBin/me.rexjz.a.TestCallable.main(TestCallable.java:22) 代码摘自Thinging in Java(4th),我初步猜测是在所有任务提交之前驱动main()执行的隐式线程shutdown(),因为第一个任务执行成功并且异常信息表明 pool size= 1,但这是不可能的,因为 main() 中的所有内容都是顺序执行的。所有 Callable 对象都应该在关闭之前提交。 然后我把ThreadPool的类型改为Executors.newFixedThreadPool(10),还是出现了Exception,池大小还是1。 这是怎么发生的? 如果你仔细观察你的 for 循环,你就会发现问题(特别是当代码按照惯例缩进时): for (int i = 0; i < 10; i++) { results.add(exec.submit(new TaskWithResult(i))); for (Future<String> fs : results) { try { System.out.println(fs.get()); } catch (InterruptedException e) { System.out.println(e); return; } catch (ExecutionException e) { System.out.println(e); } finally { exec.shutdown(); } } } 请注意,查询每个 for 的 Future 循环是 nested 于提交任务的 for 循环内。这意味着您提交一个任务,等待结果,关闭执行器,然后尝试提交另一项任务。以下应该可以解决您的问题: for (int i = 0; i < 10; i++) { results.add(exec.submit(new TaskWithResult(i))); } executor.shutdown(); // shutdown() allows already-submitted tasks to execute for (Future<String> fs : results) { try { System.out.println(fs.get()); } catch (InterruptedException e) { e.printStackTrace(); return; } catch (ExecutionException e) { e.printStackTrace(); } } 我移动了 executor.shutdown() 调用,因为这只需要在您提交最后一个任务后发生一次。当然,如果您要继续重用执行器,那么您就不想关闭它。 我还将System.out.println(e)更改为e.printStackTrace()。通常最好打印堆栈跟踪,而不仅仅是打印异常类型和消息(默认情况下,这是 Throwable#toString() 返回的内容)。在像您的示例这样的短程序中,它可能并不明显,但堆栈跟踪在更复杂的应用程序中非常有价值,因为它直接指向抛出异常的位置。请参阅什么是堆栈跟踪,以及如何使用它来调试应用程序错误?了解更多信息。 package com.springboot.testapplication; import java.util.*; import java.util.concurrent.*; class TaskWithResult implements Callable<String> { private int id; public TaskWithResult(int id) { this.id = id; } public String call() { return "Result of TaskWithResult " + id; } } public class TestCallable { public static void main(String[] args) { ExecutorService exec = Executors.newCachedThreadPool(); ArrayList<Future<String>> results = new ArrayList<Future<String>>(); for (int i = 0; i < 10; i++) { results.add(exec.submit(new TaskWithResult(i))); } for (Future<String> fs : results) { try { System.out.println(fs.get()); } catch (InterruptedException e) { System.out.println(e); return; } catch (ExecutionException e) { System.out.println(e); } finally { exec.shutdown(); } } } } 在shutDown()或awaitTermination()之前编写invokeAny()或invokeAll()方法。 Integer result = executorService.invokeAny(futureList); System.out.println(result); executorService.shutdown();

回答 3 投票 0

Thymeleaf 模板无法处理并抛出 NoSuchMethodError

我的 Thymeleaf 模板中的 th:href 属性遇到问题。我正在使用 Thymeleaf 版本 3.1.2.RELEASE 以及 Thymeleaf Spring5 集成。尽管设置了 th:href

回答 1 投票 0

SpringBoot数据JPA分组

我正在尝试使用 springboot jpa 规范通过查询来执行组。但我面临错误。下面是我的代码。 公共接口 EmployeeRepo 扩展 JpaRepository,

回答 1 投票 0

Spring JPA 具有嵌套关系,但只需要 1 个深度关系

我为 MainBranch 模型创建了 2 个深度关系,当我获得 MainBranch 时,它将获得 SubBranch 和 SubBranchRef。我只需要获取 MainBranch 和 SubBranch。对于这个问题我该怎么办? p...

回答 1 投票 0

尝试使用 Struts 6.3.0.2 和 Java 下载时二进制文件被损坏

从 struts2 升级到 struts 6.3.0.2 后,当我尝试从我的应用程序下载 pdf 和 doc-x 文件时,该文件已损坏。下载后无法打开 pdf 文件...

回答 1 投票 0

在 Google 协作平台网站中嵌入 Java 小程序

我正在尝试运行我在创建的 Google 站点中编写的一些 Java 代码。我知道这有问题,但我尝试了以下两个选项: 按照所述使用代码包装器小工具...

回答 3 投票 0

Java:从uid获取用户名

我正在阅读一个 tar 存档,其中包含数字所有者和组 ID。 我想将文件所有权设置为存档中给出的所有权。当然假设名称到 id 的映射在 t 上是相同的...

回答 1 投票 0

如何在 Java UNO API 中切换 LibreOffice 字符串的编码?

我想使用 LibreOffice UNO API 编写一个 Java 应用程序。当我尝试插入一些 Unicode 文本(西里尔字母)时,我得到了 mojibake。看来 LibreOffice 将 UTF-8 转码为单字节编码(在我的...

回答 1 投票 0

.properties 文件中的条件语句

有没有办法可以在 .properties 文件中包含条件语句? 喜欢: if(条件1) xyz = abc 否则如果(条件2) xyz = efg

回答 6 投票 0

ObjectMapper 将类转换为映射

ObjectMapper 将类转换为映射,我遇到了麻烦。 我有一个 util 类。像这样。 @Slf4j 公共类 JsonUtil { 私有静态最终 ObjectMapper objectMapper; 静止的 { ...

回答 2 投票 0

Quarkus `@ServerExceptionMapper`:解包并转发到下一个异常映射器

我有一些 HTTP 端点最终抛出 WebApplicationExceptions。这些使用全局异常映射器进行映射: @ServerExceptionMapper 公共响应 unwrapWebApplicationException(

回答 1 投票 0

如何“优化”对象创建 IF

有时我有这些工作流程。 MyObj mo = null; 如果(x==1) { 莫=富(); } 否则如果 (x == 2) { ... } 别的 { 莫=酒吧(); } 我认为它不是很“漂亮”,而且有逻辑性

回答 2 投票 0

Spring Boot 多租户:不可能设置不同的租户

我的问题很容易理解,但很难实现。 我有一个具有经典模式的 Spring Boot 应用程序(控制器/服务/Dao&Repository/实体)

回答 1 投票 0

定义正常流表达式在 Robert C Martine 的干净代码书中使用,但我无法理解,有人可以解释得更清楚吗? [已关闭]

我正在阅读 Robert C. Martin 在有关错误处理的第 7 部分中编写的干净代码,其中有一段代码我无法理解。 尝试 { 餐费支出=

回答 1 投票 0

Android:Google 登录客户端始终返回 RESULT_CANCELED

我正在尝试将 Google 登录添加到我的应用程序中。 Google 登录弹出窗口确实成功显示。但是当我登录任何google帐户后,onActivityResult中的result.getResultCode()总是返回

回答 1 投票 0

如何使用java从所有应用程序中获取所有窗口

我需要从所有应用程序获取所有窗口。 我知道java不能做这样的事情,但是有JNI。 我不知道如何使用 User32 和其他 dll 东西,所以我需要帮助。

回答 1 投票 0

Joda-Time:如何打印4位数字年份?

我使用 Jodatime 来格式化日期,并使用它使用语言环境来格式化特定于语言环境的日期。我希望我的日期格式为“17/06/2013”(分隔符必须取决于区域设置),这...

回答 2 投票 0

Hibernate 6 错误:已注册副本:SqmBasicValuedSimplePath(completelyqualifiedclass.name)

尝试使用现有条件复制计数的 Critria 构建器时。在 Hibernate 6 中似乎出现以下错误,但在 Hibernate 5 中似乎同样有效。 引起的:java.lang.

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.