我正在尝试编写eclipse插件。我需要在我的代码中使用jar文件。 在
里面public class SampleHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
使用直接访问jar文件 进程p = Runtime.getRuntime()。exec(checkStyle_cmd); checkDtyle_cmd是String" java -jar" +" jar文件的位置" +(其他一些东西)。
我创建了一个' lib'夹。用它作为源文件夹。把罐子贴在那里。添加" /ProjectName/lib/jar_file_name.jar"到运行时的Classpath。不工作。 所以,还在bin.includes build.properties中添加了/Test5/lib/checkstyle-7.1.2-all.jar。仍然没有运气。 我无法访问jar文件错误
答案 0 :(得分:0)
从jar中实际提取代码可能比从命令行运行代码更好。
在.jar文件夹中是字节代码的.class文件,这是从.java文件编译并由VM运行。
您可以使用this网站反编译.class文件。
从命令行运行代码,正如其他人所说,你需要知道绝对路径并且有时可能不存在相对路径,所以将所有源代码编译成一个就好了。罐子而不是两个.jar' s。
答案 1 :(得分:0)
您可以使用以下内容获取插件中jar的绝对路径:
Bundle bundle = FrameworkUtil.getBundle(getClass());
URL url = FileLocator.find(bundle, new Path("/lib/jar_file_name.jar"), null);
url = FileLocator.toFileURL(url);
String path = URIUtil.toFile(URIUtil.toURI(fileURL)).getAbsolutePath();