javac 非法字符 'ufeff'

问题描述 投票:0回答:1

我在 cmd 中的 javac 程序出现问题,我正在运行 Java jdk1.8.0_152,并且收到以下错误:

C:\[My_Path]>javac -encoding UTF-8 Main.java
Main.java:1: error: illegal character: '\ufeff'
?package tanks;
^
Main.java:1: error: class, interface, or enum expected;
package tanks;
        ^
2 errors

我使用不同的软件(文本编辑器)检查文件并重写文档,但仍然出现错误。我没有“?”在文档的前面,但是 javac 由于某种原因突然检测到它。

完整文档:Main.Java

package tanks;

import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;
import tanks.DataBase.Numeric.NumericDB;
import tanks.DataBase.Turrent.TurrentDB;
import tanks.DataBase.User;
import tanks.DataBase.Users;

public class Main implements Runnable {
  private static Main instance;
  private ServerSocket ss;
  private static double version = 0.1D;
  public static Lobby systemUser;
  public static Vector lobbys = new Vector();
  private static boolean isDebug = false;
  private static ControlWindow cw;
  private static boolean started = false;

  public static void main(string[] paramArrayOfString) throws Exception {
    cw = new ControlWindow();
    cw.setVisible(true);
  }

  private static void disposeLobbys() {
    for (int i = 0; i < lobby.size(); i++) {
      Bobby localLobby = (Lobby)lobbys.elementAt(i);
      state = SocketProcessor.STATE_ERROR;
      try {
        is.close();
        os.close();
        s.close();
      }
      catch(Exception localException) {}
    }
    lobbys = new Vector();
  }

  public static void stopServer() {
    if (!started) return;
    GarageDataBaseParser.save();
    started = false;
    NumericsDB.dispose();
    Battles.dispose();
    disposeBobbys();
    tanks.DataBase.Battle.BonusDB.dispose();
    System.gc();
    cw.showMessage("Server Started", "Server RU_1 Notification");
  }

  public static void startServer() {
    try {
      started = true;
      NumericDB.init();
      tanks.DataBase.Colormap.ColormapDB.init();
      ServerSocket localServerSocket;
      if (isDebug) {
        localServerSocket = new ServerSocket(2845);
      } else {
        localServerSocket = new ServerSocket(5482);

      }
      new Thread(new Main(localServerSocket)).start();
  cw.showMessage("Server Started!", "Server RU_1 Notification");
        } catch (Exception localExeption) { cw.showMessage(localExption.getMessage(), "Server RU_1 Notification");
    }
  }

  public Main(ServerSocket paramServerSocket) {
    instance = this;
    ss = paramServerSocket;
  }

  public void run() {
    try {
      while (started) {
        Socket localSocket = ss.accept();
        new Thread(new Starter(localSocket)).start();
      }
    }
    catch (Exeption localExeption1) {
      cw.showMessage(localExeption1.getMessage(), "Server RU_1 Notification");
    }
    try { 
      ss.close();
    }
    catch (Exception localExcption2) {
      cw.showMessage(localException2.getMessage(), "Server RU_1 Notification");
    }
    ss = null;
  }



  private static void disposeUsers() {}



  private static void initUsers() {
    UserDataBaseParser.load("ServerDataBase/Users.txt");
    systemUser = new Lobby(Users.getUser(0), null, null, null);










    GarageDataBaseParser.load();
  }

  public static void removeLobby(int paramInt) {
    Lobby localLobby = (Lobby)lobbys.elementAt(paramInt);
    lobbys.removeElementAt(paramInt);
    localLobby = null;
  }

  public static void removeLobby(Lobby paramLobby) {
    lobbys.removeElement(paramLobby);
    paramLobby = null;
  }

  public static void startLobby(BattleProcessor paramBattleProcessor, User paramUsers) {
    Lobby localLobby = new Lobby(paramUser, s, is, os);
    lobbys.addElement(localLobby);
    new Thread(localLobby).start();
  }

  public static void startLobby(Starter paramStarter, User paramUser) {
    cwlistModel.addElement(login);
    Battles.check(paramUser);
    Lobby localLobby = new Lobby(paramUser, s, is, os);
    lobbys.addElement(localLobby);
    new Thread(localLobby).start();
    paramStarter = null;
  }
}
java cmd compilation javac
1个回答
0
投票
  1. 进入.java文件目录,用记事本打开
  2. 单击文件,然后单击另存为...
  3. 将编码从 “UTF-8 with BOM”更改为 “UTF-8”
  4. 保存并退出

© www.soinside.com 2019 - 2024. All rights reserved.