当你不在文件中时,我想使用'java filename'命令运行java文件。
在我们使用的终端中:
cd filepath
java filename
但在Eclipse中你无法使用'cd'更改目录,所以我怎么能运行该文件,虽然我无法更改目录
我正在使用此方法使用Java
运行命令try {
String line;
Process p = Runtime.getRuntime().exec( "cd /Users/apple/Documents/Documents/workspace/UserTesting/src" );
Process p2 = Runtime.getRuntime().exec( "java NewFile" );
BufferedReader in = new BufferedReader(
new InputStreamReader(p2.getInputStream()) );
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
}
catch (Exception e) {
// ...
}
以下是几项试验
Apples-MacBook-Pro:〜apple $ cd /用户/苹果/文档/文档/工作区/ UserTesting / SRC 苹果-MacBook-Pro:src apple $ java NewFile 5 90 35 45 150 3
Reichweite ---- nach blase art
3 5 35 45 90 150Apples-MacBook-Pro:src apple $ java / Users / apple / Documents / Documents / workspace / UserTesting / src / NewFile 线程“main”java.lang.NoClassDefFoundError中的异常: /用户/苹果/文档/文档/工作区/ UserTesting / SRC / NEWFILE 引起:java.lang.ClassNotFoundException: .Users.apple.Documents.Documents.workspace.UserTesting.src.NewFile at java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at java.lang.ClassLoader.loadClass(ClassLoader.java:306)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Apples-MacBook-Pro:src apple $ java /Users/apple/Documents/Documents/workspace/UserTesting/src/NewFile.java 线程“main”java.lang.NoClassDefFoundError中的异常: /用户/苹果/文档/文档/工作区/ UserTesting / SRC / NEWFILE / JAVA 引起:java.lang.ClassNotFoundException: .Users.apple.Documents.Documents.workspace.UserTesting.src.NewFile.java 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at java.lang.ClassLoader.loadClass(ClassLoader.java:306)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 苹果-MacBook-Pro:src apple $ 块引用
答案 0 :(得分:1)
这不起作用。
首先,cd
是一个shell命令。然后创建另一个进程来运行java命令。
您需要ProcessBuilder。您可以设置初始目录,环境等:
final File wantedCwd = new File(...);
final ProcessBuilder pb = new ProcessBuilder("java", "thefile");
// Change directory
pb.directory(wantedCwd);
您甚至可以更改命令的stdin,stdout,stderr等。
请勿使用Runtime.exec()
。在许多情况下它不会(exec()
)。