Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将jar添加到eclipse插件_Java_Eclipse_Jar - Fatal编程技术网

Java 将jar添加到eclipse插件

Java 将jar添加到eclipse插件,java,eclipse,jar,Java,Eclipse,Jar,我正在尝试编写eclipse插件。我需要在代码中使用jar文件。 内部 public class SampleHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { jar文件是使用 进程p=Runtime.getRuntime().exec(checkStyle\u cmd); checkDtyle_c

我正在尝试编写eclipse插件。我需要在代码中使用jar文件。 内部

public class SampleHandler extends AbstractHandler {
    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
jar文件是使用 进程p=Runtime.getRuntime().exec(checkStyle\u cmd); checkDtyle_cmd是字符串“java-jar”+“jar文件的位置”+(其他一些东西)

我创建了一个“lib”文件夹。将其用作源文件夹。把罐子贴在那里。在运行时将“/ProjectName/lib/jar_file_name.jar”添加到类路径。不起作用。 因此,在bin.includes build.properties中还添加了/Test5/lib/checkstyle-7.1.2-all.jar。还是不走运。
我无法访问jar文件错误

从jar中实际提取代码可能比从命令行运行代码要好

在.jar文件夹中是字节码的.class文件,它由.java文件编译并由VM运行

您可以使用网站来反编译.class文件


就从命令行运行代码而言,正如其他人所说,您需要知道绝对路径,而相对路径有时可能不存在,最好将所有源代码编译成一个.jar而不是两个.jar。您可以使用以下方法在插件中获得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();

如果您试图在一个单独的进程中运行jar,它不必位于当前的类路径中——您只需将绝对文件路径传递给java命令,但您可能还需要告诉
exec
在哪里查找java命令。您得到的确切错误是什么?我得到的错误是“无法访问jarfile/Test5/lib/checkstyle-7.1.2-all.jar”。它使用绝对路径。但我需要将我的项目导出为jar插件,以便其他人可以使用它。所以,我需要给出相对路径;它不起作用。我试着用一个文本文件。只有当文件在src文件夹中时,我才能获得输出。如果它在lib文件夹中(我已经切换到源文件夹),它不会显示路径Bundle和FrameworkUtil是什么?我没有从Eclipse得到任何关于导入这些类的建议,它们位于
org.Eclipse.osgi
插件中,因此请将它们添加到插件的依赖项中。