使用'java filename'命令运行java文件

时间:2013-06-16 16:39:48

标签: java eclipse terminal execution

当你不在文件中时,我想使用'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 150

     

Apples-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 $   块引用

1 个答案:

答案 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())。