Eclipse Plugin project with other project dependencies

时光总嘲笑我的痴心妄想 提交于 2019-12-19 17:16:31

问题


I have an Eclipse plugin project, and it depends on other projects that I have in my Eclipse workspace. After adding the project dependencies under "Java Build Path" -> "Projects" tab, and also selecting the project in the "Order and Export" I get a java.lang.NoClassDefFoundError.

I'm assuming that the other projects have not been properly included into the plugin. Does anyone know how to fix this?

Thanks, James


回答1:


An Eclipse plug in project manages dependencies differently than a regular Java project.

I'm assuming that you're adding packages with .class files.

Define a library folder in your Eclipse plug-in project. Copy any external classes and / or jars to the library folder.

Open up the MANIFEST.MF file under the META-INF directory. You'll see a formatted editor with 8 tabs on the bottom.

Click on the Runtime tab. Add the external classes and / or jars in the library folder to the Classpath. This will also add these external classes and or jars to the Java Build Path of the project.

Click on the Dependencies tab, and add the other Java projects in the Imported Packages dialog. You have to check the box labeled "Show non-exported packages". If your other Java projects are Eclipse plug ins, add them under Required Plug-ins instead.




回答2:


In case if you're not in a position to copy the dependent project into your plugin project and you are sure about the presence of the dependent project in the target eclipse where plugin is to be installed, then you can either use Runtime.exec() to run the Java class you want to run or ProcessBuilder class to run the class.

Like this:

// To compile
Process p = Runtime.getRuntime().exec("javac yourclass.java"); 
// To execute
Process p2 = Runtime.getRuntime().exec("java yourclass");

This may be considered in the worst case. I had such an experience and hence thought some may find it useful.



来源:https://stackoverflow.com/questions/2869693/eclipse-plugin-project-with-other-project-dependencies

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!