运行 来自 java 代码的 .JAR 文件 (netbeans)
Running .JAR file from java code (netbeans)
我正在尝试从 java 代码 运行 一个 jar 文件,但不幸的是没有成功。
关于 jar 文件的一些细节:
- 位于不同文件夹中的 jar 文件(例如 - "Folder")。
- 使用文件和文件夹的jar文件在根文件夹中(与我上面提到的"Folder"相同)。
到目前为止我正在尝试做什么:
JAR 文件项目。
- 在 netbeans 中,我检查了主要 class 是 defiend(项目属性 -> 运行 -> 主要 Class)。
其他JAVA计划
正在尝试 运行 使用以下命令:
Runtime.getRuntime().exec("javaw -jar "C:\Software\program.jar");
&&
Runtime.getRuntime().exec("javaw -jar "C:\Software\program.jar" "C:\Software");
jar 文件打开很好,但他不知道和识别他的内部文件夹和文件(与我上面提到的 "Folder" 相同)。
简而言之,它无法识别其根文件夹。
尝试 运行 使用 ProcessBuilder
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start", "javaw", "-jar", "C:\Software\program.jar");
pb.directory(new File("C:\Software"));
try {
pb.start();
} catch (IOException ex) {
}
在某些 PC 上 它工作正常,但在其他 PC 上它不工作并且我收到一条错误消息:"Could not find the main class"
** Offcourse 如果我 运行 jar 双击它的作品。
那么我如何 运行 来自其他 java 程序的 jar 文件?
使用 .exec 的 this 变体,将工作文件夹指定为第三个参数。 (在你的例子中,你总是只使用一个参数。)
exec("javaw -jar "C:\Software\program.jar", null, "C:\Software");
您可以尝试像下面这样称呼它。有两种调用方式。
public class JarExecutor {
public static void main(String[] args) throws IOException, InterruptedException {
//这是第一种调用方式
Process proc=Runtime.getRuntime().exec(new String[]{"java","-jar" ,"C:\Users\Leno\Desktop\JarsPractise\JarsPrac.jar"});
//这是第二种调用方式
Process proc=Runtime.getRuntime().exec(new String[]{"java","-cp","C:\Users\Leno\Desktop\JarsPractise\JarsPrac.jar","com.shiva.practise.FloydTriangle"});
proc.waitFor();
BufferedInputStream is=new BufferedInputStream(proc.getInputStream());
byte[] byt=new byte[is.available()];
is.read(byt,0,byt.length);
System.out.println(new String(byt));
}
}
我正在尝试从 java 代码 运行 一个 jar 文件,但不幸的是没有成功。 关于 jar 文件的一些细节:
- 位于不同文件夹中的 jar 文件(例如 - "Folder")。
- 使用文件和文件夹的jar文件在根文件夹中(与我上面提到的"Folder"相同)。
到目前为止我正在尝试做什么:
JAR 文件项目。
- 在 netbeans 中,我检查了主要 class 是 defiend(项目属性 -> 运行 -> 主要 Class)。
其他JAVA计划
正在尝试 运行 使用以下命令:
Runtime.getRuntime().exec("javaw -jar "C:\Software\program.jar");
&&
Runtime.getRuntime().exec("javaw -jar "C:\Software\program.jar" "C:\Software");
jar 文件打开很好,但他不知道和识别他的内部文件夹和文件(与我上面提到的 "Folder" 相同)。 简而言之,它无法识别其根文件夹。
尝试 运行 使用 ProcessBuilder
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "start", "javaw", "-jar", "C:\Software\program.jar"); pb.directory(new File("C:\Software")); try { pb.start(); } catch (IOException ex) { }
在某些 PC 上 它工作正常,但在其他 PC 上它不工作并且我收到一条错误消息:"Could not find the main class" ** Offcourse 如果我 运行 jar 双击它的作品。
那么我如何 运行 来自其他 java 程序的 jar 文件?
使用 .exec 的 this 变体,将工作文件夹指定为第三个参数。 (在你的例子中,你总是只使用一个参数。)
exec("javaw -jar "C:\Software\program.jar", null, "C:\Software");
您可以尝试像下面这样称呼它。有两种调用方式。
public class JarExecutor {
public static void main(String[] args) throws IOException, InterruptedException {
//这是第一种调用方式
Process proc=Runtime.getRuntime().exec(new String[]{"java","-jar" ,"C:\Users\Leno\Desktop\JarsPractise\JarsPrac.jar"});
//这是第二种调用方式
Process proc=Runtime.getRuntime().exec(new String[]{"java","-cp","C:\Users\Leno\Desktop\JarsPractise\JarsPrac.jar","com.shiva.practise.FloydTriangle"});
proc.waitFor();
BufferedInputStream is=new BufferedInputStream(proc.getInputStream());
byte[] byt=new byte[is.available()];
is.read(byt,0,byt.length);
System.out.println(new String(byt));
}
}