【发布时间】:2019-06-08 04:59:20
【问题描述】:
在 Ubuntu 机器上,我有一个文件夹,其中包含 shell 脚本文件、包含依赖 jar 的文件夹和 java 项目文件夹。
例如:主文件夹 -外壳脚本文件 -JAVA项目文件夹 -LIB 带有 jars 的文件夹
在 shell 脚本中,我将从MAIN-FOLDER 使用下面的行执行 shell 脚本:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java -Xms2048m -Xmx2048m -cp lib/*:JAVA_PROJECT-FOLDER/target/* com.ivizsecurity.scanoptions.MainClass $HOST $PORT $MYSQL_USER $MYSQL_PASSWORD
status=$?
所以问题是每当我从 ubuntu 中的 opt 文件夹运行 shell 脚本时,它都可以正常工作,但是如果我尝试在桌面中复制相同的文件夹并执行,它会抛出以下错误。无法访问lib文件夹
Exception in thread "main" java.lang.NoSuchFieldError: REFLECTION
at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.<init>(RuntimeModelBuilder.java:93)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:464)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:310)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:146)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1169)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:147)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:288)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:277)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:400)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)
请帮帮我。 提前致谢
【问题讨论】: