java.util.concurrent.Callable

本文介绍了Java中Callable接口与Runnable接口的区别。Callable接口的任务可以返回结果并能抛出异常,而Runnable则不具备这些特性。通过使用Callable接口,可以利用Future对象获取任务的状态和结果。

Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。

  • Callable和Runnable有几点不同:
  • (1)Callable规定的方法是call(),而Runnable规定的方法是run().
  • (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。
  • (3)call()方法可抛出异常,而run()方法是不能抛出异常的。
    (4)运行Callable任务可拿到一个Future对象,可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果。

Callable接口:

// V就是call函数的返回值类型 , 也与 Future 的类型一致
public interface Callable<V> {

    V call() throws Exception;
}

一般情况下是配合ExecutorService来使用的:

public class TestCall implements Callable<String> {
    private int i;
    public TestCall(int i){
        this.i=i;
    }

    public String call() throws Exception {
        return Thread.currentThread().getName()+"----"+i;
    }


    public static void main(String[] args){
        //newCachedThreadPool 重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,
        // 则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。
        ExecutorService executorService= Executors.newCachedThreadPool();
        List<Future<String>> results=new ArrayList<Future<String>>();
        for(int k=0;k<10;k++){
            Future<String> future=executorService.submit(new TestCall(k));
            results.add(future);
        }

        System.out.println("-------------------");
        for(Future<String> fs:results){
            try{
              System.out.println(fs.get());
            }catch (InterruptedException e){
                e.printStackTrace();
            }catch (ExecutionException e){
                e.printStackTrace();
            }
        }
    }
}

结果:
-------------------
pool-1-thread-1----0
pool-1-thread-2----1
pool-1-thread-3----2
pool-1-thread-4----3
pool-1-thread-5----4
pool-1-thread-2----5
pool-1-thread-5----6
pool-1-thread-3----7
pool-1-thread-1----8
pool-1-thread-5----9
2025-10-27 09:31:25.822 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@2fc40856; com.huawei.cube.core.env.CubeEnvConfigResolver@5543d800; com.huawei.foundation.commons.config.DefaultConfigResolver@1e033801 2025-10-27 09:31:25.882 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:31:27.234 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:31:27.261 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:31:27.645 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @2ac3d530 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:31:27.683 [ExpiredBeanManager] WARN [][com.huawei.foundation.commons.beans.BeanMgntFactory.60] error in clean task, and exit! 2025-10-27 09:31:35.980 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@4a10c019; com.huawei.cube.core.env.CubeEnvConfigResolver@37f627d0; com.huawei.foundation.commons.config.DefaultConfigResolver@2a7392a3 2025-10-27 09:31:36.043 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:31:37.278 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:31:37.314 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:31:37.667 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @7b8fcdf2 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:31:45.940 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@4bcf08ae; com.huawei.cube.core.env.CubeEnvConfigResolver@626b9092; com.huawei.foundation.commons.config.DefaultConfigResolver@1ac2829e 2025-10-27 09:31:46.011 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:31:47.280 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:31:47.326 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:31:47.678 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @1ef04613 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:31:57.926 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@2184962c; com.huawei.cube.core.env.CubeEnvConfigResolver@4d9bccfe; com.huawei.foundation.commons.config.DefaultConfigResolver@412440c1 2025-10-27 09:31:57.981 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:31:59.414 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:31:59.440 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:31:59.820 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @2bd7f686 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:32:10.353 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@1e38e8b6; com.huawei.cube.core.env.CubeEnvConfigResolver@59bbf82e; com.huawei.foundation.commons.config.DefaultConfigResolver@75b3ef1a 2025-10-27 09:32:10.415 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:32:11.766 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:32:11.807 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:32:12.188 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @e4ef4c0 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:32:12.225 [ExpiredBeanManager] WARN [][com.huawei.foundation.commons.beans.BeanMgntFactory.60] error in clean task, and exit! 2025-10-27 09:32:24.142 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@862624f; com.huawei.cube.core.env.CubeEnvConfigResolver@3aa8c337; com.huawei.foundation.commons.config.DefaultConfigResolver@78e7b83 2025-10-27 09:32:24.242 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:32:25.549 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:32:25.573 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:32:25.981 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @5487a8f1 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 2025-10-27 09:32:26.024 [ExpiredBeanManager] WARN [][com.huawei.foundation.commons.beans.BeanMgntFactory.60] error in clean task, and exit! 2025-10-27 09:32:38.387 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.219] Config resolver is com.huawei.foundation.commons.props.SystemEnvConfigResolver@2184962c; com.huawei.cube.core.env.CubeEnvConfigResolver@4d9bccfe; com.huawei.foundation.commons.config.DefaultConfigResolver@412440c1 2025-10-27 09:32:38.529 [main] INFO [][com.huawei.foundation.commons.config.ConfigUtils.42] Control param factory is not exist, and use default control param factory 2025-10-27 09:32:39.824 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationLoader.85] foundation component configuration is load for profiles [sit] 2025-10-27 09:32:39.849 [main] INFO [][com.huawei.foundation.commons.props.ConfigurationUtils.55] All config item list [foundation-application, foundation-bootstrap, foundation, cube-app, hae-config, cube-rt-sgov, cube-rt-sso, commons-ops, console, cube-rt-web, cube-rt-security, cube-rt-cs, cube-rt-privilege, cube-privilege-program, cube-rt-http, cube-rt-discovery, cube-rt-health, cube-rt-mqs, cube-das, cube-asynctask, cube-excel, commons-boot] 2025-10-27 09:32:40.211 [main] ERROR [][com.huawei.foundation.commons.thread.ThreadUtils.94] fail to init ThreadUtils java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.concurrent.Callable java.util.concurrent.FutureTask.callable accessible: module java.base does not "opens java.util.concurrent" to unnamed module @2bd7f686 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:803) at com.huawei.foundation.commons.thread.ThreadUtils.<clinit>(ThreadUtils.java:88) at com.huawei.foundation.commons.tracing.reporting.IncidentTracingReporter.<clinit>(IncidentTracingReporter.java:40) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300) at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103) at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200) at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403) at com.huawei.foundation.commons.reporting.ReporterFactory.findReporter(ReporterFactory.java:30) at com.huawei.foundation.commons.incident.IncidentReporterFactory.init(IncidentReporterFactory.java:30) at com.huawei.foundation.commons.incident.Incident.init(Incident.java:144) at com.huawei.foundation.commons.tracing.AgentDynamicInjectInitializer.initialize(AgentDynamicInjectInitializer.java:34) at org.springframework.boot.SpringApplication.lambda$createBootstrapContext$1(SpringApplication.java:343) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.springframework.boot.SpringApplication.createBootstrapContext(SpringApplication.java:343) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) at com.huawei.cbgit.tree.MainApplication.main(MainApplication.java:34) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) 为什么报错
最新发布
10-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值