ファイル内のデータを新しいデータに置き換え、ファイルの名前を Java で別の名前に変更したいと考えています。変更を実行するコードが保存されているのと同じクラス ディレクトリに古いファイルを保存しています。コマンドプロンプトで使用するコマンドは次のとおりです。
java ReplacingText oldfile newfile oldstring newstring
エラーが発生します:
Exception in thread "main" java.lang.NoClassDefFoundError: ReplacingText (wrong name: replacingtext/ReplacingText)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
誰かがそれに光を当てることができますか?
package replacingtext;
import java.io.*;
import java.util.*;
public class ReplacingText
{
public static void main(String[] args) throws Exception
{
if (args.length !=4)
{
System.out.println(
"Usage: java ReplaceText sourceFile targetFile oldStr newStr");
System.exit(0);
}
File sourceFile = new File(args[0]);
if(!sourceFile.exists())
{
System.out.println("Source file " + args[0]+" does not exist");
System.exit(0);
}
File targetFile = new File(args[1]);
if (targetFile.exists())
{
System.out.println("Target File " + args[1] + "already exist");
System.exit(0);
}
Scanner input = new Scanner(sourceFile);
PrintWriter output2 = new PrintWriter(targetFile);
while (input.hasNext())
{
String s1=input.nextLine();
String s2=s1.replaceAll(args[2],args[3]);
output2.println(s2);
}
input.close();
output2.close();
}
}