微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有 Ktor 的 Google PubSub

如何解决带有 Ktor 的 Google PubSub

我已经使用 Ktor 有一段时间了,我想将 Google PubSub 集成到 Ktor,但它不起作用。当应用启动并且 PubSub 能够运行时,Ktor 服务器无法启动。

如果有人成功将 PubSub 与 Ktor 集成,我将不胜感激,请与我分享他们是如何做到这一点的。

提前致谢。

PubSub 运行良好但 Ktor 死掉的错误日志:

java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled
    at io.grpc.netty.shaded.io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31)
    at io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$4.run(PlatformDependent0.java:238)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
    at io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0.<clinit>(PlatformDependent0.java:232)
    at io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:289)
    at io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:92)
    at io.grpc.netty.shaded.io.netty.util.AsciiString.<init>(AsciiString.java:223)
    at io.grpc.netty.shaded.io.netty.util.AsciiString.<init>(AsciiString.java:210)
    at io.grpc.netty.shaded.io.netty.util.AsciiString.cached(AsciiString.java:1401)
    at io.grpc.netty.shaded.io.netty.util.AsciiString.<clinit>(AsciiString.java:48)
    at io.grpc.netty.shaded.io.grpc.netty.Utils.<clinit>(Utils.java:74)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder.<clinit>(NettyChannelBuilder.java:81)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelProvider.builderForAddress(NettyChannelProvider.java:38)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelProvider.builderForAddress(NettyChannelProvider.java:24)
    at io.grpc.ManagedChannelBuilder.forAddress(ManagedChannelBuilder.java:39)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:306)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.access$1600(InstantiatingGrpcChannelProvider.java:73)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider$1.createSingleChannel(InstantiatingGrpcChannelProvider.java:214)
    at com.google.api.gax.grpc.ChannelPool.create(ChannelPool.java:72)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:221)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:204)
    at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:169)
    at com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub.create(GrpcSubscriberStub.java:272)
    at com.google.cloud.pubsub.v1.Subscriber.doStart(Subscriber.java:276)
    at com.google.api.core.AbstractApiService$InnerService.doStart(AbstractApiService.java:148)
    at com.google.common.util.concurrent.AbstractService.startAsync(AbstractService.java:248)
    at com.google.api.core.AbstractApiService.startAsync(AbstractApiService.java:120)
    at com.google.cloud.pubsub.v1.Subscriber.startAsync(Subscriber.java:268)
    at com.fbistech.ApplicationKt.listenToSub(Application.kt:314)
    at com.fbistech.ApplicationKt.access$listenToSub(Application.kt:1)
    at com.fbistech.ApplicationKt$main$started$1$1.invokeSuspend(Application.kt:96)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.dispatchedTask.run(dispatchedTask.kt:106)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:86)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:61)
    at kotlinx.coroutines.BuildersKt.runBlocking(UnkNown Source)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(UnkNown Source)
    at com.fbistech.ApplicationKt$main$started$1.invoke(Application.kt:96)
    at com.fbistech.ApplicationKt$main$started$1.invoke(Application.kt)
    at io.ktor.application.ApplicationEvents.raise(ApplicationEvents.kt:46)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.safeRiseEvent(ApplicationEngineEnvironmentReloading.kt:192)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.instantiateAndConfigureApplication(ApplicationEngineEnvironmentReloading.kt:311)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.createApplication(ApplicationEngineEnvironmentReloading.kt:136)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.start(ApplicationEngineEnvironmentReloading.kt:268)
    at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:174)
    at io.ktor.server.netty.EngineMain.main(EngineMain.kt:26)
    at com.fbistech.ApplicationKt.main(Application.kt:65)
2021-05-10 05:22:39.918 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent0 - java.nio.Bits.unaligned: available,true
2021-05-10 05:22:39.919 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): available
2021-05-10 05:22:39.919 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long,int): unavailable
2021-05-10 05:22:39.919 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent - sun.misc.Unsafe: available
2021-05-10 05:22:39.930 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent - maxDirectMemory: 4294967296 bytes (maybe)
2021-05-10 05:22:39.930 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent - -dio.netty.tmpdir: /var/folders/g1/4bwcs52n38b3bcjc3rdv2zvm0000gn/T (java.io.tmpdir)
2021-05-10 05:22:39.930 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent - -dio.netty.bitMode: 64 (sun.arch.data.model)
2021-05-10 05:22:39.931 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent - -dio.netty.maxDirectMemory: -1 bytes
2021-05-10 05:22:39.931 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent - -dio.netty.uninitializedArrayAllocationThreshold: 1024
2021-05-10 05:22:39.931 [main] DEBUG i.g.n.s.i.n.u.internal.CleanerJava9 - java.nio.ByteBuffer.cleaner(): available
2021-05-10 05:22:39.931 [main] DEBUG i.g.n.s.i.n.u.i.PlatformDependent - -dio.netty.nopreferDirect: false
2021-05-10 05:22:39.971 [main] DEBUG i.g.n.s.i.n.u.i.NativeLibraryLoader - -dio.netty.native.workdir: /var/folders/g1/4bwcs52n38b3bcjc3rdv2zvm0000gn/T (io.netty.tmpdir)
2021-05-10 05:22:39.971 [main] DEBUG i.g.n.s.i.n.u.i.NativeLibraryLoader - -dio.netty.native.deleteLibAfterLoading: true
2021-05-10 05:22:39.971 [main] DEBUG i.g.n.s.i.n.u.i.NativeLibraryLoader - -dio.netty.native.tryPatchShadedId: true
2021-05-10 05:22:39.972 [main] DEBUG i.g.n.s.i.n.u.i.NativeLibraryLoader - Unable to load the library 'io_grpc_netty_shaded_netty_tcnative_osx_x86_64',trying other loading mechanism.
java.lang.UnsatisfiedLinkError: no io_grpc_netty_shaded_netty_tcnative_osx_x86_64 in java.library.path: /Users/fbistech-d6m/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
    at java.base/java.lang.classLoader.loadLibrary(ClassLoader.java:2447)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:809)
    at java.base/java.lang.System.loadLibrary(System.java:1893)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:371)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:363)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:341)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:136)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:96)
    at io.grpc.netty.shaded.io.netty.handler.ssl.OpenSsl.loadTcNative(OpenSsl.java:590)
    at io.grpc.netty.shaded.io.netty.handler.ssl.OpenSsl.<clinit>(OpenSsl.java:136)
    at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.defaultSslProvider(GrpcSslContexts.java:228)
    at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:145)
    at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:94)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder$DefaultProtocolNegotiator.newNegotiator(NettyChannelBuilder.java:594)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:500)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder$NettyChannelTransportFactoryBuilder.buildClientTransportFactory(NettyChannelBuilder.java:171)
    at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:608)
    at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:261)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:340)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.access$1600(InstantiatingGrpcChannelProvider.java:73)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider$1.createSingleChannel(InstantiatingGrpcChannelProvider.java:214)
    at com.google.api.gax.grpc.ChannelPool.create(ChannelPool.java:72)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:221)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:204)
    at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:169)
    at com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub.create(GrpcSubscriberStub.java:272)
    at com.google.cloud.pubsub.v1.Subscriber.doStart(Subscriber.java:276)
    at com.google.api.core.AbstractApiService$InnerService.doStart(AbstractApiService.java:148)
    at com.google.common.util.concurrent.AbstractService.startAsync(AbstractService.java:248)
    at com.google.api.core.AbstractApiService.startAsync(AbstractApiService.java:120)
    at com.google.cloud.pubsub.v1.Subscriber.startAsync(Subscriber.java:268)
    at com.fbistech.ApplicationKt.listenToSub(Application.kt:314)
    at com.fbistech.ApplicationKt.access$listenToSub(Application.kt:1)
    at com.fbistech.ApplicationKt$main$started$1$1.invokeSuspend(Application.kt:96)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.dispatchedTask.run(dispatchedTask.kt:106)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:86)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:61)
    at kotlinx.coroutines.BuildersKt.runBlocking(UnkNown Source)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(UnkNown Source)
    at com.fbistech.ApplicationKt$main$started$1.invoke(Application.kt:96)
    at com.fbistech.ApplicationKt$main$started$1.invoke(Application.kt)
    at io.ktor.application.ApplicationEvents.raise(ApplicationEvents.kt:46)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.safeRiseEvent(ApplicationEngineEnvironmentReloading.kt:192)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.instantiateAndConfigureApplication(ApplicationEngineEnvironmentReloading.kt:311)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.createApplication(ApplicationEngineEnvironmentReloading.kt:136)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.start(ApplicationEngineEnvironmentReloading.kt:268)
    at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:174)
    at io.ktor.server.netty.EngineMain.main(EngineMain.kt:26)
    at com.fbistech.ApplicationKt.main(Application.kt:65)
2021-05-10 05:22:39.973 [main] DEBUG i.g.n.s.i.n.u.i.NativeLibraryLoader - io_grpc_netty_shaded_netty_tcnative_osx_x86_64 cannot be loaded from java.library.path,Now trying export to -dio.netty.native.workdir: /var/folders/g1/4bwcs52n38b3bcjc3rdv2zvm0000gn/T
java.lang.UnsatisfiedLinkError: no io_grpc_netty_shaded_netty_tcnative_osx_x86_64 in java.library.path: /Users/fbistech-d6m/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
    at java.base/java.lang.classLoader.loadLibrary(ClassLoader.java:2447)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:809)
    at java.base/java.lang.System.loadLibrary(System.java:1893)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:351)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:136)
    at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:96)
    at io.grpc.netty.shaded.io.netty.handler.ssl.OpenSsl.loadTcNative(OpenSsl.java:590)
    at io.grpc.netty.shaded.io.netty.handler.ssl.OpenSsl.<clinit>(OpenSsl.java:136)
    at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.defaultSslProvider(GrpcSslContexts.java:228)
    at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:145)
    at io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:94)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder$DefaultProtocolNegotiator.newNegotiator(NettyChannelBuilder.java:594)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:500)
    at io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder$NettyChannelTransportFactoryBuilder.buildClientTransportFactory(NettyChannelBuilder.java:171)
    at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:608)
    at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:261)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:340)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.access$1600(InstantiatingGrpcChannelProvider.java:73)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider$1.createSingleChannel(InstantiatingGrpcChannelProvider.java:214)
    at com.google.api.gax.grpc.ChannelPool.create(ChannelPool.java:72)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:221)
    at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:204)
    at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:169)
    at com.google.cloud.pubsub.v1.stub.GrpcSubscriberStub.create(GrpcSubscriberStub.java:272)
    at com.google.cloud.pubsub.v1.Subscriber.doStart(Subscriber.java:276)
    at com.google.api.core.AbstractApiService$InnerService.doStart(AbstractApiService.java:148)
    at com.google.common.util.concurrent.AbstractService.startAsync(AbstractService.java:248)
    at com.google.api.core.AbstractApiService.startAsync(AbstractApiService.java:120)
    at com.google.cloud.pubsub.v1.Subscriber.startAsync(Subscriber.java:268)
    at com.fbistech.ApplicationKt.listenToSub(Application.kt:314)
    at com.fbistech.ApplicationKt.access$listenToSub(Application.kt:1)
    at com.fbistech.ApplicationKt$main$started$1$1.invokeSuspend(Application.kt:96)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.dispatchedTask.run(dispatchedTask.kt:106)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:86)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:61)
    at kotlinx.coroutines.BuildersKt.runBlocking(UnkNown Source)
    at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(UnkNown Source)
    at com.fbistech.ApplicationKt$main$started$1.invoke(Application.kt:96)
    at com.fbistech.ApplicationKt$main$started$1.invoke(Application.kt)
    at io.ktor.application.ApplicationEvents.raise(ApplicationEvents.kt:46)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.safeRiseEvent(ApplicationEngineEnvironmentReloading.kt:192)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.instantiateAndConfigureApplication(ApplicationEngineEnvironmentReloading.kt:311)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.createApplication(ApplicationEngineEnvironmentReloading.kt:136)
    at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.start(ApplicationEngineEnvironmentReloading.kt:268)
    at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:174)
    at io.ktor.server.netty.EngineMain.main(EngineMain.kt:26)
    at com.fbistech.ApplicationKt.main(Application.kt:65)
    Suppressed: java.lang.UnsatisfiedLinkError: no io_grpc_netty_shaded_netty_tcnative_osx_x86_64 in java.library.path: /Users/fbistech-d6m/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
        at java.base/java.lang.classLoader.loadLibrary(ClassLoader.java:2447)
        at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:809)
        at java.base/java.lang.System.loadLibrary(System.java:1893)
        at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:371)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
        at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:363)
        at io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:341)
        ... 46 common frames omitted

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?