2010-06-16 28 views
9

Tôi gặp phải lỗi dòng quá dài trong khi cố gắng tạo một cái lọ. dòng dài trong tệp kê khai là dòng Class-Path vì ứng dụng sử dụng rất nhiều thư viện của bên thứ ba. không cần phải nói, tôi đang sử dụng Windows :-(và Eclipse Java 1.6Đường quá dài trong tệp kê khai trong khi cố gắng tạo jar

tôi đã cố gắng Class-Path: lib hoặc Class-Path: lib/ nhưng họ đã không làm việc.

Trả lời

29

Các classpath quá dài do số lượng các tập tin jar trong đó. « Không có dòng nào dài hơn 72 byte (không phải ký tự), ở dạng mã hóa UTF8. »[Từ tài liệu: java 5, java 8;« Dòng dài »phần].

sử dụng như cách sau để giải quyết sự cố:

(1) sử dụng các dòng riêng biệt, để tránh quá nhiều dòng cho gói java Tên ge liệt kê

(2) gõ một không gian trước trước mỗi dòng folloing, ví dụ:

Class-Path: 
...jar 
...jar 
...jar 
+3

hoàn hảo ... khoảng trắng ở cuối mỗi dòng và một ở đầu. Cảm ơn một triệu – fadmaa

+1

@fadmaa, chỉ ở đầu. –

-7

Đối với lỗi dòng quá dài

Sử dụng Class-Path: *.*

6

Câu trả lời của Voodoochild đưa tôi đi đúng hướng nhưng không rõ ràng với tôi để trích dẫn các thông số kỹ thuật:

No line may be longer than 72 bytes (not characters), in its UTF8-encoded form. If a value would make the initial line longer than this, it should be continued on extra lines (each starting with a single SPACE).

Manifest dụ:

Manifest-Version: 1.0 
Main-Class: com.mypackage.MyApp 
Class-path: commons-beanutils-1.7.0.jar commons-collections-3.1.jar 
commons-dbcp-1.2.2.jar commons-discovery.jar commons-lang-2.1.jar 
commons-pool-1.2.jar ezjcom18.jar jbcl.jar log4j-1.2.14.jar 
sqljdbc.jar torque-3.2-rc2.jar 
+0

Ngoài ra, nếu tên của tệp jar vượt quá 72 byte và chuyển sang dòng tiếp theo, nó sẽ không có thêm không gian đơn (tôi đã sửa đổi mẫu của bạn để bao gồm các trường hợp như vậy). – Malvon

4

Các nhân vật duy nhất không làm việc cho tôi (Java 8, IntelliJ). Tôi đã sử dụng hai ký tự khi bắt đầu và không có ký tự nào ở cuối dòng (không rõ ràng từ ví dụ trên) và hai dòng mới ở cuối, ví dụ:

Manifest-Version: 1.0 
Main-Class: com.mypackage.MyApp 
Implementation-Version: 2.0.0 
Class-Path: newLibs/asjava.zip 
    newLibs/activation.jar 
    newLibs/axis-ant.jar 
    newLibs/axis.jar 
    newLibs/bcel-5.1.jar 
    newLibs/commons-discovery-0.2.jar 
    newLibs/commons-logging-1.0.4.jar 
    newLibs/datanucleus-api-jdo-4.2.0-release.jar 
    newLibs/datanucleus-api-jpa-4.1.4.jar 
    newLibs/datanucleus-cache-4.0.4.jar 
    newLibs/datanucleus-core-4.1.5.jar 
    newLibs/datanucleus-geospatial-4.1.0-release.jar 
    newLibs/datanucleus-guava-4.1.3.jar 
    newLibs/datanucleus-java8-4.2.0-release.jar 
    newLibs/datanucleus-jdo-query-4.2.0-release.jar 
    newLibs/datanucleus-jodatime-4.1.1.jar 
    newLibs/datanucleus-jpa-query-4.0.4.jar 
    newLibs/datanucleus-rdbms-4.1.6.jar 
    newLibs/dom4j-1.6.1.jar 
    newLibs/ehcache-1.1.jar 
    newLibs/ehcache-core-2.2.0.jar 
    newLibs/geronimo-jta_1.1_spec-1.1.jar 
    newLibs/guava-15.0.jar 
    newLibs/h2-1.3.168.jar 
    newLibs/ibmjsse.jar 
    newLibs/javax.jdo-3.2.0-m3.jar 
    newLibs/javax.persistence-2.1.1.jar 
    newLibs/jaxrpc.jar 
    newLibs/jdo-api-3.1-rc1.jar 
    newLibs/jdom.jar 
    newLibs/joda-time-1.6.jar 
    newLibs/jtds-1.2.jar 
    newLibs/log4j-1.2.14.jar 
    newLibs/mail.jar 
    newLibs/saaj.jar 
    newLibs/servlet-api.jar 
    newLibs/wsdl4j-1.5.1.jar 
    newLibs/xercesImpl.jar 
    newLibs/xml-apis.jar 

Tôi cũng tránh đặt nhiều lọ trên một dòng vì nó không có vẻ hoạt động (ngay cả với các dòng nhỏ hơn 72 byte).

Điều gì đã dẫn tôi đến giải pháp này là (1) Tôi tiếp tục nhận được các loại ngoại lệ khác nhau, và (2) Khi tôi kiểm tra tệp kê khai được tạo trong tệp jar, khoảng cách giữa các bình bị thiếu - Tôi cho rằng nó đã âm thầm thất bại vì không có báo cáo lỗi ngoài lớp học không tìm thấy trường hợp ngoại lệ. Tệp kê khai đang hoạt động, được tạo của tôi trông giống như sau:

Manifest-Version: 1.0 
Implementation-Version: 2.0.0 
Class-Path: newLibs/asjava.zip newLibs/activation.jar newLibs/axis-an 
t.jar newLibs/axis.jar newLibs/bcel-5.1.jar newLibs/commons-discovery 
-0.2.jar newLibs/commons-logging-1.0.4.jar newLibs/datanucleus-api-jd 
o-4.2.0-release.jar newLibs/datanucleus-api-jpa-4.1.4.jar newLibs/dat 
anucleus-cache-4.0.4.jar newLibs/datanucleus-core-4.1.5.jar newLibs/d 
atanucleus-geospatial-4.1.0-release.jar newLibs/datanucleus-guava-4.1 
.3.jar newLibs/datanucleus-java8-4.2.0-release.jar newLibs/datanucleu 
s-jdo-query-4.2.0-release.jar newLibs/datanucleus-jodatime-4.1.1.jar 
newLibs/datanucleus-jpa-query-4.0.4.jar newLibs/datanucleus-rdbms-4.1 
.6.jar newLibs/dom4j-1.6.1.jar newLibs/ehcache-1.1.jar newLibs/ehcach 
e-core-2.2.0.jar newLibs/geronimo-jta_1.1_spec-1.1.jar newLibs/guava- 
15.0.jar newLibs/h2-1.3.168.jar newLibs/ibmjsse.jar newLibs/javax.jdo 
-3.2.0-m3.jar newLibs/javax.persistence-2.1.1.jar newLibs/jaxrpc.jar 
newLibs/jdo-api-3.1-rc1.jar newLibs/jdom.jar newLibs/joda-time-1.6.ja 
r newLibs/jtds-1.2.jar newLibs/junit-3.8.1.jar newLibs/log4j-1.2.14.j 
ar newLibs/mail.jar newLibs/saaj.jar newLibs/servlet-api.jar newLibs/ 
wsdl4j-1.5.1.jar newLibs/xercesImpl.jar newLibs/xml-apis.jar 
Main-Class: com.mypackage.MyApp 
+0

Ứng dụng này làm việc cho tôi. –

+0

Tính chất cơ bản của định dạng tập tin này bảo vệ tâm trí, nhưng có vẻ như hai không gian ngay lập tức theo sau "Lớp-Đường dẫn:' một khoảng trống ở cuối dòng và một trước mỗi dòng, và cuối cùng là một dòng mới bổ sung cuối cùng đã làm các trick. Wow, tôi nghĩ tôi sẽ rót cho mình một ít đồ uống mạnh. –

Các vấn đề liên quan