2013-08-26 37 views
10

Gần đây tôi đã nâng cấp lên Eclipse Kepler và đang gặp sự cố với Ant. Tôi nhận được Trình khởi chạy máy ảo Java - Một ngoại lệ Java đã xảy ra lỗi cho dù tôi chọn mục tiêu nào trong các tệp xây dựng của mình.Ant không hoạt động trong Eclipse Kepler (Trình khởi chạy máy ảo Java - Đã xảy ra ngoại lệ Java)

Tôi đã thử cài đặt lại JDK của mình và tôi vẫn gặp lỗi. Tôi đang chạy phiên bản 7u25 của JDK. Tôi có biến môi trường JAVA_HOME được đặt thành C:\Progra~1\Java\jdk1.7.0_25, vì vậy tôi không nghĩ đây là vấn đề. Điều gì khác có thể gây ra vấn đề?

EDIT: Tôi cũng đã thử nghiệm kiến ​​trong dòng lệnh và nó hoạt động tốt. Đây có phải là lỗi trong Kepler không?

EDIT 2: Dưới đây là các bản ghi của các lỗi:

org.eclipse.core.runtime.CoreException: Could not find one or more classes: "org.apache.tools.ant.BuildLogger". Please check the Ant classpath. 
at org.eclipse.ant.core.AntRunner.problemLoadingClass(AntRunner.java:467) 
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:380) 
at org.eclipse.ant.internal.launching.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:307) 
at org.eclipse.ant.internal.launching.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:260) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:700) 
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:181) 
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:169) 
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:88) 
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:726) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) 
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) 
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) 
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) 
at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:514) 
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:423) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:830) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707) 
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018) 
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

Caused by: java.lang.NoClassDefFoundError: org/apache/tools/ant/BuildLogger 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
at java.lang.Class.getConstructor0(Unknown Source) 
at java.lang.Class.newInstance(Unknown Source) 
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:324) 
... 24 more 

Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.BuildLogger 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at org.eclipse.ant.internal.core.AntClassLoader.findClass(AntClassLoader.java:54) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 29 more 
+1

và thông báo lỗi là gì? –

+0

Không có thông báo lỗi cụ thể nào cả, chỉ một hộp hiển thị "Một ngoại lệ Java đã xảy ra". –

+0

phải có nút chi tiết trong hộp đó, phải không? –

Trả lời

0

Có thể rằng Eclipse không có JAR đúng quy định. Bạn có cố gắng thêm tools.jar cần thiết cho Ant không?

Preferences> Ant> Runtime

enter image description here

+0

Đúng, nó đã có sẵn. –

6

tôi đã cùng một vấn đề và nó khiến tôi một thời gian để tìm ra những giải pháp là. Tôi đã làm theo tất cả các đề xuất trên trang này và các trang tương tự; không có gì giúp đỡ! Tôi gỡ bỏ cài đặt và cài đặt jdk, nhật thực, thiết lập lại dự án của tôi, tôi buộc Eclipse xóa các thông số của nó, ...; không thành công.

Điều cuối cùng đã khắc phục được sự cố của tôi là xóa thư mục .metadata trong thư mục không gian làm việc. Tôi không biết những gì nhật thực giữ trong đó, nhưng xóa các direcotry .metadata gây ra Eclipse khởi động lại mọi thiết lập. Tôi đã phải tái cấu trúc dự án của mình. Nó hoạt động trở lại như một sự quyến rũ. Không có thông báo lỗi 'Có một ngoại lệ đã xảy ra' không rõ ràng.

2

Trong trường hợp của tôi:

  • không đăng nhập trong nhật thực, chỉ cần nhắn: Java Virtual Machine Launcher: Một ngoại lệ Java đã xảy ra.

Do tái sử dụng không gian làm việc cũ với phiên bản Eclipse khác, tôi đã giải quyết bằng cách thay thế tất cả phụ thuộc jar trong Ant-> Runtime-> Classpath-> Ant Home Entries (Mặc định) theo thực tế và jar hiện tại (từ tôi eclipse-jee-Kepler-SR1-win32-x86_64 \ eclipse \ plugins \ org.apache.ant_1.8.4.v201303080030 \ lib)

Nó giải thích trên: https://bugs.eclipse.org/bugs/show_bug.cgi?id=102463#c41

+3

Bạn cũng có thể nhấn 'Restore Defaults' từ tab Ant> Runtime> Classpath – Nick

+0

@Nick là đúng. Cảm ơn bạn. – halil

1

tôi đã có lỗi tương tự; chuyển vùng làm việc từ Eclipse Indigo sang Eclipse Kepler. Tôi có thể giải quyết nó bằng cách đặt lại giá trị Ant_Home. Ban đầu nó chỉ vào thư mục chính xác, nhưng tôi chỉ cần đặt lại nó vào cùng một thư mục và nhấp vào 'Áp dụng'. Làm việc tốt ngay bây giờ. Hy vọng điều này sẽ hữu ích.

0

Đối với tôi, tôi chỉ xóa thư mục siêu dữ liệu và bắt đầu nhật thực với nhập tất cả dự án thư viện của bạn. Kiểm tra đường dẫn lớp ant của bạn và thêm jar này một lần nữa. Cảm ơn

10

Điều này rất có thể do sự khác biệt trong phiên bản Ant đang được sử dụng bởi nhật thực. Vui lòng cập nhật Ant_Home trong nhật thực. Window -> Preferences -> Ant -> Runtime -> Classpath -> Nhấn Ant Home .. và cố định vị trí phiên bản mới nhất của vị trí thư mục Ant. Điều này phù hợp với tôi :)

+2

Lỗi của OP là những gì xảy ra nếu bạn di chuyển ant đến một thư mục khác mà không cập nhật 'Ant Home' trong Eclipse. Câu trả lời này đã giúp giải quyết vấn đề. – KyleM

0

Trong trường hợp nhà kiến ​​của tôi đã trỏ đến một liên kết tượng trưng (để cài đặt kiến ​​thực). Eclipse không thích điều đó. Cập nhật thư mục cài đặt thực tế đã giải quyết được vấn đề.

1

Đối với tôi vấn đề là JDK mà tôi đang cố gắng sử dụng. Dự án tôi muốn xây dựng được thiết lập để sử dụng 1,6 JDK. Tôi đã nhận được lỗi tương tự như người hỏi, nhưng khi tôi thay đổi thành Java 8, bản dựng đã hoạt động tốt. Vì vậy, tôi giả định rằng phiên bản ANT đi kèm với các phiên bản mới hơn Eclipse không hoạt động với các JDK cũ hơn.

enter image description here

2

IDE như (Eclipse-Oxygen) sẽ có phiên bản kiến ​​mặc định. Nếu kiến ​​xây dựng XML của bạn không tương thích với phiên bản ANT cao hơn.

Giảm/giảm phiên bản ANT xuống phiên bản phù hợp. JDK không tương thích với tất cả các bản xây dựng ANT. Đối với Instance, ANT 1.9.2 là phiên bản cuối cùng để hỗ trợ JAVA 7.

Vì vậy, chúng ta cần phải phù hợp với phiên bản JDK và phiên bản ANT tương ứng. Ghi đè lên phiên bản mặc định của IDE bằng cách sử dụng Preferences -> ANT -> Runtime -> Nhấp vào Ant Home (và chọn phiên bản mới của ANT Home ở đó, sẽ ghi đè lên Ant Home Entries)

0

Tôi gặp vấn đề này gần đây (sau đó là đồng nghiệp) trong Eclipse khi chạy tập lệnh ANT từ giao diện giao diện người dùng (menu ngữ cảnh, Run As hoặc Debug As).

Do một số lý do, JRE thời gian chạy cho tập lệnh ANT (hoặc cho bản thân ANT, không rõ ràng tại thời điểm này) đã thay đổi. Runtime JRE này có thể được thay đổi từ menu ngữ cảnh cho kịch bản ANT, External Tools Configurations...:

Context Menu - Run As - External Tools Configuration

Sau đó chuyển sang tab JRE trên bên phải:

External Tools Configuration - Runtime JRE

Đồng nghiệp của tôi có các thiết lập Separate JRE sai, thay đổi nó thành thiết lập JRE thích hợp (JDK 1.8_XXX trong trường hợp của mình). Đây là sau khi hợp nhất, nơi mà một số thiết lập không chính xác đã được hợp nhất thành một nhánh (hoặc vì vậy chúng tôi nghĩ).

Trong trường hợp của tôi, tôi nghĩ rằng tôi đã thiết lập này là Run in the same JRE as the workspace là sai. Tôi cũng đặt số này là Separate JRE, chọn đúng 1.8 JDK và đã khắc phục sự cố. Đây là sau khi nâng cấp phiên bản Eclipse (như tôi nhớ lại).

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