\"Project" />
开发者

Eclipse Plugin project with other project dependencies

开发者 https://www.devze.com 2022-12-30 17:54 出处:网络
I have an Eclipse plugin project, and it depends on开发者_StackOverflow other projects that I have in my Eclipse workspace. After adding the project dependencies under \"Java Build Path\" -> \"Project

I have an Eclipse plugin project, and it depends on开发者_StackOverflow 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


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.


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号