我成功使用了我编写的 Java 命令行程序 使用 Apache POI 文件读取 Microsoft Word (.docx) 文件并邮寄。我希望将其打包为可执行 jar。
我正在创建这个
通过获取我的应用程序需要的每个 jar 并使用 jar -xvf 进行扩展。
Stackoverflow 问题 183292 描述了在以下情况下可以使用的技术: 人们需要将一个库“放在 jar 里”。
不幸的是,当我运行它时,我收到以下错误。
DEBUG: setDebug: JavaMail version 1.4ea
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
at org.apache.poi.ooxml.POIXMLTypeLoader.<clinit>(POIXMLTypeLoader.java:43)
at org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentRead(XWPFDocument.java:178)
at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:184)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:145)
at m4.main(m4.java:273)
在创建 jar fille 之前我做的最后一件事是扩展
(使用jar -xvf
)xmlbeans-5.1.3.jar
。
然后我重新打包了所有内容(我的应用程序和打包所有内容的结果)
其他文件。)
StackOverflow.com 上的问题 20799326 解释了这一点
症状是由类路径上的多个 xml beans jar 文件引起的。
但是,由于可执行 jar 应该只能看到扩展版本,
我不认为这会成为问题。
问题 183292 进一步指出,扩展一个 jar 来创建另一个 jar 可以 导致包名称冲突的问题。
(但是“如果人们使用正确的方法,这种情况就不会发生” 包,...”但是,我当然相信 Apache 确实使用了该标准 封装约定...
我上次扩展了5.1版本。
这应该取代任何可能有的旧版本
一直躺在目录中。
(以防万一,我尝试删除旧的 org/apache/xmlbeans
目录,然后重做 jar。没有帮助。)
扩展 jar 后,我执行了 ls -R
我冒昧地附上 list ,碰巧有人可能会
看到那里有东西。我确实缩写了那些看起来最不相关的部分
带省略号。
m4:
com
Debug
javax
LICENSE.txt
m4$1.class
m4$AddressMap.class
m4.class
m4$CmdLineConst.class
Manifest.txt
META-INF
NOTICE.txt
org
resolver.jar
schemaorg_apache_xmlbeans
m4/com:
microsoft
sun
m4/com/microsoft:
schemas
m4/com/microsoft/schemas:
compatibility
office
vml
...
m4/com/microsoft/schemas/office:
excel
office
visio
x2006
m4/com/microsoft/schemas/office/excel:
...
m4/com/microsoft/schemas/office/x2006:
digsig
encryption
keyEncryptor
m4/com/microsoft/schemas/office/x2006/digsig:
CTSignatureInfoV1.class
CTSignatureInfoV1$Factory.class
....
m4/com/microsoft/schemas/office/x2006/digsig/impl:
...
m4/com/microsoft/schemas/office/x2006/encryption:
CTDataIntegrity.class
....
m4/com/sun:
mail
m4/com/sun/mail:
handlers
iap
imap
pop3
smtp
util
m4/com/sun/mail/handlers:
image_gif.class
image_jpeg.class
message_rfc822.class
multipart_mixed.class
text_html.class
text_plain.class
text_xml.class
m4/com/sun/mail/iap:
Argument.class
AString.class
Atom.class
....
m4/com/sun/mail/imap:
ACL.class
AppendUID.class
DefaultFolder$1.class
...
m4/com/sun/mail/imap/protocol:
BASE64MailboxDecoder.class
BASE64MailboxEncoder.class
BODY.class
...
....
m4/com/sun/mail/smtp:
DigestMD5.class
SMTPAddressFailedException.class
....
m4/com/sun/mail/util:
ASCIIUtility.class
BASE64DecoderStream.class
...
m4/Debug: (This is my class)
Debug.class
Debug.java
m4/javax:
mail
m4/javax/mail:
Address.class
AuthenticationFailedException.class
Authenticator.class
BodyPart.class
....
m4/javax/mail/event:
ConnectionAdapter.class
ConnectionEvent.class
....
m4/javax/mail/internet:
AddressException.class
AsciiOutputStream.class
CachedDataHandler.class
....
m4/javax/mail/search:
AddressStringTerm.class
AddressTerm.class
AndTerm.class
....
m4/javax/mail/util:
...
m4/META-INF:
INDEX.LIST
javamail.charset.map
javamail.default.address.map
javamail.default.providers
LICENSE
LICENSE.txt
mailcap
MANIFEST.MF
maven
NOTICE
NOTICE.txt
services
SUN_MICR.RSA
SUN_MICR.SF
xmlbeans.bnd
m4/META-INF/maven:
org.apache.commons
org.ow2.jonas.osgi
m4/META-INF/maven/org.apache.commons:
commons-collections4
commons-compress
....
m4/org:
apache
etsi
openxmlformats
w3
w3c
m4/org/apache:
commons
env
poi
xml
xmlbeans
m4/org/apache/commons:
collections4
compress
m4/org/apache/commons/collections4:
ArrayStack.class
ArrayUtils.class
bag
Bag.class
BagUtils.class
bidimap
...
m4/org/apache/commons/collections4/bag:
AbstractBagDecorator.class
AbstractMapBag$BagIterator.class
AbstractMapBag.class
.....
m4/org/apache/commons/compress:
archivers
changes
....
m4/org/apache/commons/compress/archivers:
ar
ArchiveEntry.class
ArchiveException.class
ArchiveInputStream.class
....
tar
zip
...
m4/org/apache/env:
WhichFactory.properties
WhichJar.properties
m4/org/apache/poi:
common
ddf
EmptyFileException.class
....
m4/org/apache/poi/common:
usermodel
m4/org/apache/poi/common/usermodel:
fonts
Hyperlink.class
HyperlinkType.class
m4/org/apache/poi/common/usermodel/fonts:
FontCharset.class
FontFamily.class
....
m4/org/apache/poi/ddf:
AbstractEscherOptRecord$1.class
AbstractEscherOptRecord.class
DefaultEscherRecordFactory.class
....
m4/org/apache/poi/extractor:
ole2
OLE2ExtractorFactory.class
POIOLE2TextExtractor.class
POITextExtractor.class
m4/org/apache/poi/extractor/ole2:
OLE2ScratchpadExtractorFactory.class
....
m4/org/apache/poi/ooxml:
extractor
POIXMLDocument.class
...
m4/org/apache/poi/ooxml/extractor:
CommandLineTextExtractor.class
....
m4/org/apache/poi/ooxml/util:
DocumentHelper$1.class
DocumentHelper.class
....
m4/org/apache/poi/openxml4j:
exceptions
opc
util
.....
m4/org/apache/poi/sl/usermodel:
AbstractColorStyle.class
AutoNumberingScheme$1.class
AutoNumberingScheme.class
...
TextShape$TextPlaceholder.class
VerticalAlignment.class
m4/org/apache/poi/ss:
excelant
extractor
format
formula
SpreadsheetVersion.class
usermodel
util
m4/org/apache/poi/ss/excelant:
antlib.xml
ExcelAntEvaluateCell.class
ExcelAntHandlerTask.class
ExcelAntPrecision.class
....
m4/org/apache/poi/ss/excelant/util:
ExcelAntEvaluationResult.class
ExcelAntWorkbookUtil.class
ExcelAntWorkbookUtilFactory.class
m4/org/apache/poi/ss/extractor:
EmbeddedData.class
EmbeddedExtractor$BiffExtractor.class
...
m4/org/apache/poi/ss/format:
CellDateFormatter$1.class
CellDateFormatter.class
CellDateFormatter$DatePartHandler.class
CellElapsedFormatter$1.class
...
m4/org/apache/poi/ss/formula:
atp
BaseFormulaEvaluator$1.class
BaseFormulaEvaluator.class
...
WorkbookDependentFormula.class
WorkbookEvaluator$1.class
WorkbookEvaluator.class
WorkbookEvaluatorProvider.class
...
....
m4/org/apache/poi/xddf:
usermodel
m4/org/apache/poi/xddf/usermodel:
BlackWhiteMode.class
chart
CompoundLine.class
...
XDDFRadarChartData.class
XDDFRadarChartData$Series.class
XDDFScatterChartData.class
XDDFScatterChartData$Series.class
XDDFSeriesAxis.class
XDDFValueAxis.class
....
....
m4/org/apache/poi/xwpf:
extractor
model
usermodel
m4/org/apache/poi/xwpf/extractor:
XWPFWordExtractor.class
m4/org/apache/poi/xwpf/model:
WMLHelper.class
XWPFCommentsDecorator.class
XWPFHeaderFooterPolicy.class
XWPFParagraphDecorator.class
m4/org/apache/poi/xwpf/usermodel:
BodyElementType.class
BodyType.class
Borders.class
BreakClear.class
...
XWPFTable$1.class
XWPFTable$Border.class
...
m4/org/apache/xml:
resolver
m4/org/apache/xml/resolver:
apps
Catalog.class
CatalogEntry.class
...
Resolver.class
tools
Version.class
m4/org/apache/xml/resolver/apps:
resolver.class
xparse.class
XParseError.class
xread.class
m4/org/apache/xml/resolver/etc:
catalog.dtd
catalog.rng
catalog.xsd
...
m4/org/apache/xmlbeans:
BindingConfig.class
CDataBookmark.class
DelegateXmlObject.class
...
XmlUnsignedShort$Factory.class
XmlValidationError.class
m4/org/apache/xmlbeans/impl:
common
config
inst2xsd
jam
piccolo
regex
richParser
schema
soap
store
tool
util
validator
values
xb
xpathgen
xsd2inst
m4/org/apache/xmlbeans/impl/common:
ConcurrentReaderHashMap$1.class
ConcurrentReaderHashMap$BarrierLock.class
ConcurrentReaderHashMap.class
ConcurrentReaderHashMap$Entry.class
...
XPath.class
XPath$CompilationContext.class
XPath$ExecutionContext.class
XPath$ExecutionContext$PathContext.class
XPath$Selector.class
XPath$Step.class
XPath$XPathCompileException.class
...
m4/org/etsi:
uri
m4/org/etsi/uri:
x01903
m4/org/etsi/uri/x01903:
v13
m4/org/etsi/uri/x01903/v13:
AnyType.class
AnyType$Factory.class
CertIDListType.class
CertIDListType$Factory.class
CertIDType.class
CertIDType$Factory.class
...
XAdESTimeStampType.class
XAdESTimeStampType$Factory.class
m4/org/etsi/uri/x01903/v13/impl:
AnyTypeImpl.class
CertIDListTypeImpl.class
CertIDTypeImpl.class
CertificateValuesTypeImpl.class
...
UnsignedPropertiesTypeImpl.class
UnsignedSignaturePropertiesTypeImpl.class
XAdESTimeStampTypeImpl.class
m4/org/openxmlformats:
schemas
m4/org/openxmlformats/schemas:
drawingml
officeDocument
presentationml
spreadsheetml
wordprocessingml
xpackage
....
...
m4/org/openxmlformats/schemas/officeDocument:
x2006
m4/org/openxmlformats/schemas/officeDocument/x2006:
customProperties
docPropsVTypes
extendedProperties
relationships
...
m4/org/openxmlformats/schemas/spreadsheetml/x2006/main:
CalcChainDocument.class
CalcChainDocument$Factory.class
ChartsheetDocument.class
ChartsheetDocument$Factory.class
CommentsDocument.class
...
StylesDocument.class
StylesDocument$Factory.class
STZoom$Enum.class
....
m4/schemaorg_apache_xmlbeans/javaname/org/apache/xmlbeans:
impl
m4/schemaorg_apache_xmlbeans/javaname/org/apache/xmlbeans/impl:
xb
m4/schemaorg_apache_xmlbeans/javaname/org/apache/xmlbeans/impl/xb:
ltgfmt
substwsdl
xmlconfig
xmlschema
xsdownload
xsdschema
m4/schemaorg_apache_xmlbeans/javaname/org/apache/xmlbeans/impl/xb/ltgfmt:
Code.xsb
FileDesc
FileDesc.xsb
TestCase
... (rest is all schemaorg stuff)
最佳答案
这里出现同样的错误,但是加载 Excel 文件,只需将我的 XMLBeans 从 2.3.0 升级到 3.1.0,一切都很好。
在这里下载:
https://www.apache.org/dyn/closer.lua/poi/xmlbeans/release/bin/xmlbeans-bin-3.1.0.zip
关于java - 可执行 Jar : jorg. apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I) org.apache.poi.ooxml.POIXMLTypeLoader.<clinit> 中的 Jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53067465/