2010-05-23 26 views
29

Khi tôi khởi động ứng dụng của chúng tôi trong Eclipse trên Windows tôi nhận được lỗi sau:Fail để khởi động ứng dụng (CreateProcess lỗi = 87), không thể sử dụng rút ngắn classpath workaround

Exception occured executing command line.

Cannot run program .. : CreateProcess error=87, The parameter is incorrect

Tôi đã giải quyết này trong bằng cách rút ngắn CLASSPATH.

Bây giờ tôi đã đến một điểm mà tôi không thể rút ngắn CLASSPATH nữa và muốn biết liệu có cách giải quyết nào khác không.

http://support.microsoft.com/kb/830473 dường như chỉ ra rằng lệnh max dòng nhắc chiều dài trong Windows XP là 8191 ký tự, và giải pháp duy nhất là để rút ngắn tên thư mục, giảm độ sâu của cây thư mục, sử dụng các file tham số vv

+0

bạn đã tìm thấy bất kỳ giải pháp nào tốt hơn cho điều này chưa? – subes

Trả lời

16

eclipsecoding FAQ page này không xác nhận chẩn đoán của bạn:

When the CLASSPATH gets too long, the program cannot be launched (at least under Windows) - try to shorten your classpath. In the case of a plugin, you can try to remove unnecessary required plugins.

Và bạn có here a thread chi tiết lỗi nhật ký.

Vì bạn có thể khởi chạy Eclipse, nhưng không phải ứng dụng, tôi sẽ kiểm tra xem bạn không có quá nhiều plugin được bao gồm trong cấu hình khởi chạy của bạn hay chưa. Bạn có thể kiểm tra xem bạn có added only the required plugins không?

0

Tôi gặp phải vấn đề tương tự. Cố gắng chạy một trang sổ lưu niệm sẽ không thành công, bất cứ điều gì tôi đã cố gắng. Tôi đã kiểm tra các nội dung của direcotry .plugins của tôi trong không gian làm việc. Tôi nhận thấy rất nhiều tệp chỉ mục trong thư mục de org.eclipse.jdt.core. Tôi đã đổi tên thư mục này và bây giờ một quá trình sổ lưu niệm có thể được chạy lại.

12

Là một workaround:

  1. Mở cấu hình chạy eclipse của bạn cho nhiệm vụ đó là thất bại.
  2. Chọn tab classpath, chọn classpath mặc định, nhấp vào nút "Chỉnh sửa .."
  3. Chọn hộp kiểm "Chỉ bao gồm các mục đã xuất".

Điều này cho phép tôi để có được xung quanh vấn đề này trên Eclipse 3.6 (Helios)

+0

Điều đó không hoạt động trên SpringSource ToolSuite 2.5.1 Tôi phải di chuyển các dự án của mình sang một thư mục có đường dẫn thư mục nhỏ hơn. –

+0

+1 cho điều này vì nó chỉ làm việc cho tôi – chAmi

1

tôi đã đối phó với những vấn đề tương tự trên Eclipse, như vậy, vì lý do đó tôi quyết định đưa ra một thử để cùng một dự án trên Intellij, chỉ để biết nếu nó là một vấn đề IDE.

Đáng ngạc nhiên, Intellij phát hiện vấn đề này (đường dẫn lớp dài) và cho tôi thấy một hộp thoại, giới thiệu tôi sử dụng tính năng classpath động. Sau khi bật tùy chọn này, sự cố đã biến mất.

dynamic.classpath gì cờ làm là: What does the dynamic.classpath flag do? (IntelliJ project settings)

Vì vậy, bây giờ câu hỏi của tôi là: Có cách nào để làm điều tương tự trên Eclipse? dường như là một giải pháp đơn giản và thanh lịch cho vấn đề này, thay vì xóa bỏ thủ công tất cả những phụ thuộc không cần thiết.

2

Đây chắc chắn là sự cố với đường dẫn lớp quá dài khiến dòng lệnh vượt quá giới hạn tối đa của nó. để giải quyết, rút ​​ngắn classpath của bạn. Nếu bạn đang sử dụng Maven (như tôi - ví dụ: trong phát triển Phát triển Jive) thì hãy thay đổi vị trí của .m2 bằng cách thay đổi cài đặt maven.xml

<settings> 
    <localRepository>c:/.m2/repository</localRepository> 
</settings> 

và sau đó di chuyển kho của bạn có từ thư mục người dùng, nhưng đảm bảo rằng các settings.xml và các thiết lập-security.xml (nếu có) vẫn nằm trong thư mục người dùng. Bằng cách này, đường dẫn lớp sẽ không còn hiển thị c: \ Documents and Settings \ username.m2 nhiều hơn nhưng thay vì c: .m2 cho phép giảm đáng kể classpath và do đó chiều dài lệnh. Hãy nhớ rằng trong cửa sổ bạn không thể tạo một thư mục (bằng chính mình) với tên .m2, và vì vậy bạn phải cắt thư mục, dán vào trong c: và sau đó sao chép nó vào thư mục người dùng của bạn

1

Sử dụng liên kết động có thể dễ dàng tạo bằng juncion (http://technet.microsoft.com/en-us/sysinternals/bb896768). Tạo liên kết cho dự án của bạn và thêm nó vào nhật thực thông qua đó. sử dụng ví dụ: md d: \ SHORTNAME ngã ba d: \ SHORTNAME \ d: \ của tôi \ rất \ dài \ dài \ dài \ dài \ dài \ dài \ projectnamefolder

1

Đây là một lỗi được biết đến trong Eclipse: Bug 327193 - [patch] Khởi chạy dòng lệnh vượt quá giới hạn lệnh tạo quy trình trên Windows

Nó sẽ được sửa với Eclipse e4 4.3 được phát hành vào năm 2013. Nó không được coi là đủ quan trọng để khắc phục trong 3.4.2. Nhưng trong phần đính kèm của lỗi, bạn có thể tìm thấy một vài lớp thay thế để sửa chữa phiên bản Eclipse của bạn.

0

Một giải pháp tôi có cho Eclipse, là đóng các dự án nhất định được bật thông qua Giải pháp không gian làm việc và thay vào đó chúng được giải quyết từ kho lưu trữ Maven cục bộ của bạn. Nó làm việc cho tôi anyways

0

Tôi đã phải đối mặt với cùng một vấn đề, dự án xây dựng lại các tệp jar chưa được xây dựng. Giả sử các công cụ-1.6.jar được xây dựng và được thêm vào dưới dạng phụ thuộc. Sau đó có thể thay đổi mã nguồn cho các công cụ-1.6.jar và không được thực hiện #mvn clean install.

Tôi đã thực hiện xây dựng sạch và cập nhật phụ thuộc maven, lỗi đã được giải quyết.

1

Kể từ khi tôi đã có cùng một vấn đề với Eclipse Helios (phiên bản chỉ hỗ trợ chính thức của bộ phận của chúng tôi) và tôi đã có một khó khăn lớn giải quyết vấn đề, đây là giải pháp:

Cài đặt Eclipse mới nhất (trong trường hợp của tôi 4.3.2 đã làm việc).

Sự cố này đã được báo cáo là lỗi Eclipse: https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193 và hiện đã được khắc phục.

Hy vọng điều này sẽ giúp người dùng trong tương lai tiếp cận trang này.

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