Google 프로토콜 버퍼를 사용하는 간단한 프로그램 (Java로 작성)이 있으며 Windows 컴퓨터에서 정상적으로 작동합니다.Google 프로토콜 버퍼는 Windows에서는 작동하지만 Linux에서는 작동하지 않습니다.
그러나 나는 다음과 같은 예외가 리눅스 시스템에서 실행 때
com.google.protobuf.Descriptors$FileDescriptor.internalBuildGeneratedFileFrom(Ljava/lang/String;[Lcom/google/protobuf/Descriptors$FileDescriptor;Lcom/google/protobuf/Descriptors$FileDescriptor$InternalDescriptorAssigner;
at com.test.integration.protocols.protocolBuffers.messages.TestMsgs.<clinit>(TestMsgs.java:5111)
at com.test.integration.protocols.protocolBuffers.messages.TestMsgs$SessionInfo.<clinit>(TestMsgs.java:3346)
at com.test.integration.protocols.protocolBuffers.messages.TestMsgs$TestRequest.<init>(TestMsgs.java:782)
at com.test.integration.protocols.protocolBuffers.messages.TestMsgs$TestRequest.<clinit>(TestMsgs.java:760)
at com.test.simulators.TestJmsListener.onMessage(TestJmsListener.java:80)
at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1215)
at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131)
at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202)
at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
나는 두 시스템의 프로토콜 버퍼 같은 jar 파일을 사용합니다.
이것은 오류 메시지의 일부처럼 보입니다. 전체 스택 추적을 제공하거나 프로그램의 전체 출력을 향상시킬 수 있습니까? –
전체 추적을 추가했습니다. 이 문제와 관련된 유일한 출력입니다 – giorashc
오류 메시지는 파일 설명자에 대해 뭔가를 말합니다. 앱에 파일 경로 또는 경로 처리 코드가있을 수 있습니다 (예 : 슬래시와 백 슬래시를 혼합하거나 하나의 OS에서만 유효하지만 다른 경로에서는 유효하지 않은 절대 경로를 사용합니까? –