0

是否可以从 IDE(例如 NetBeans 或 Eclipse)编写程序,该程序可以从命令行编译并在用户在要运行的 java 类程序名称之后输入两个参数后运行?

如果是这样,可以将绝对路径作为参数之一传入吗?

如果是这样,(如果源文件或目标文件有一个多字描述符,如 Big Sky File.txt),它如何作为参数传入?

我知道这是很多问题,但我已经搜索了高和低,似乎没有什么比这些主题的表面更重要了。

@Code-Guru,@thkala,这是我正在尝试的代码(格式化了一下):

编辑:@Code-Guru,我添加了违规行(不知道我是如何错过的)。

下一次编辑:@ Code-Guru,这里是 CopyFile.java 中更新的文件内容,以及由此产生的错误消息:

import java.io.*;

public class CopyFile
{
 public static void main(String args[]) throws IOException, NullPointerException
{ 
int num; 
FileInputStream fileIn; 
FileOutputStream fileOut; 
try
{ 
  // open input file 
  try
  { 
    fileIn = new FileInputStream(args[0]); 
  }

  catch(FileNotFoundException e)
  { 
  System.out.println("Input File Not Found."); 
  return; 
  }

  // open output file 
  try
  { 
    fileOut = new FileOutputStream(args[1]); 
  }

  catch(FileNotFoundException e)
  { 
    System.out.println("Error Opening Output File.");
    return;
  }

}

catch(ArrayIndexOutOfBoundsException e)
{
  System.out.println("Incorrect argument use:java CopyFile Source Destination"); 
  return;
} 

// Copy File 
try
{ 
  do
  {
    num = fileIn.read();
    if(num != -1)
    {
      fileOut.write(num);
    }
  }

  while(num != -1); 
}

catch(IOException e)
{
  System.out.println("File Error: Could not copy file."); 
}
fileIn.close();
fileOut.close();
}
}

这是我从命令提示符收到的错误消息:

错误:无法找到或加载主类 CopyFile

4

2 回答 2

2

是否可以从 IDE(例如 NetBeans 或 Eclipse)编写程序,该程序可以从命令行编译并在用户在要运行的 java 类程序名称之后输入两个参数后运行?

是的,有可能。

如果是这样,可以将绝对路径作为参数之一传入吗?

绝对 -任何字符串都可以作为参数传递,只要它的大小不超过某个(通常是系统定义的)限制。

如果是这样,(如果源文件或目标文件有一个多字描述符,如 Big Sky File.txt),它如何作为参数传入?

通常,带有空格、特殊字符等的参数由调用 shell 处理,而不是由 Java 程序处理。请查阅您的文档,了解如何在您使用的任何命令行 shell 中正确引用此类参数。

于 2013-03-11T02:31:28.707 回答
1

答案就在这部分错误信息中:

(wrong name: copyfile/CopyFile)

即,您的班级的完全限定名称是copyfile.CopyFile. Java 要求包布局与磁盘上的文件夹布局相匹配,因此它知道如何查找内容。

因此,您的类文件必须位于名为 的子文件夹copyfile中,然后调用为java copyfile.CopyFile,或者您可以通过package copyfile;从代码中删除声明来编译未命名的默认包中的类(您没有显示该行,但它必须存在) .

更多信息:http ://www.jarticles.com/package/package_eng.html

于 2013-03-11T12:27:14.630 回答