Virtual machine 如何用Java与虚拟机通信?

Virtual machine 如何用Java与虚拟机通信?,virtual-machine,vmware,java,webserver,Virtual Machine,Vmware,Java,Webserver,我制作了一个小Java程序来检查pin码是否正确。正如您在代码中所看到的,程序要求某人输入pin码,然后检查bdd.txt文件(扮演数据库角色)中的pin码是否正确 实际上我想进入下一步,我想在Android设备上部署这个程序 首先,我需要虚拟机上的bdd.txt文件(比如Ubuntu),这样它就不再是本地文件了。这更现实。我必须记住,在将来,设备会询问输入的pin是否正确,当然,所有pin都不会在设备上,因此所有检查过程都不会是本地的 这就是为什么我的问题是:如何用Java与虚拟机通信? 我的

我制作了一个小Java程序来检查pin码是否正确。正如您在代码中所看到的,程序要求某人输入pin码,然后检查bdd.txt文件(扮演数据库角色)中的pin码是否正确

实际上我想进入下一步,我想在Android设备上部署这个程序

首先,我需要虚拟机上的bdd.txt文件(比如Ubuntu),这样它就不再是本地文件了。这更现实。我必须记住,在将来,设备会询问输入的pin是否正确,当然,所有pin都不会在设备上,因此所有检查过程都不会是本地的

这就是为什么我的问题是:如何用Java与虚拟机通信? 我的程序运行在我的windows计算机上,我已经安装了带有VMware的Ubuntu,我如何才能访问我虚拟机中的文件?(Web服务?)这可能吗?如果是,怎么做

守则:

import java.io.*;
import java.util.*;

public class Main {

  // Fonction permettant d'accéder/lire notre BDD de pins (fichier .txt)
  static public boolean readPinsData(File dataFile, ArrayList<Integer> data) {
    boolean err = false;
    try {
      Scanner scanner = new Scanner(dataFile);
      String line;
      while (scanner.hasNext()) {
        line = scanner.nextLine();
        try {
          data.add(Integer.parseInt(line));
        } catch (NumberFormatException e) {
          e.printStackTrace();
          err = true;
        }
      }
      scanner.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
      err = true;
    }

    return err;
  }

  public static void main(String[] args) {

    // Définition int & booléen nécessaires ici
    System.out.println("-----------------------");
    System.out.println("APPLICATIONS BESOINS");
    System.out.println("-----------------------");
    Console console = System.console();

    //System.out.println(console == null);

    int pinSize = 0;
    int nbTry = 0;
    boolean authenticated = false;

    // On va demander à saisir un pin de 4 digits : tant que l'utilisateur
    // ne saisit pas 4 digits, on boucle
    do {
      do {

        char passwordArray[] = console.readPassword("Enter pin: "); // Demande
                                      // de
                                      // saisie
                                      // du
                                      // pin
        pinSize = passwordArray.length;

        if (pinSize != 4) { // On prévient l'utilisateur que le pin se
                  // compose de 4 chiffres, sinon Ok on passe
                  // à la vérif.
          System.out.println("Pin must be 4 digits");
        } else {
          System.out.println("Checking...");
        }

        ArrayList<Integer> pins = new ArrayList<Integer>(); // Nos pins
                                  // sont mis
                                  // dans un
                                  // Liste
        readPinsData(new File("bdd.txt"), pins); // On lit dans notre
                              // BDD de pins
        // System.out.println(pins);
        // System.out.println(passwordArray);

        String[] thePins = new String[pins.size()];
        for (int i = 0; i < thePins.length; i++) {
          thePins[i] = pins.get(i).toString();
        }

        String passEntered = String.valueOf(passwordArray);

        for (int i = 0; i < thePins.length; i++) { // Recherche si pin
                              // bon et on print
                              // :)
          if (passEntered.equals(thePins[i]) && pinSize == 4) {
            System.out.println(":)");
            authenticated = true;
            break;
          }
        }

      } while (pinSize != 4); // Si la on saisit un pin qui n'a pas 4
                  // chiffres, on ne peux valider la demande,
                  // donc le nombre d'Essais n'est pas déduit
      if (!authenticated && pinSize == 4) { // Dans ce cas, on incrémente
                          // le nombre d'essais car le
                          // pin saisit n'est pas dans
                          // notre BDD et on print :(
        System.out.println(":(");
        nbTry++;
      }
    } while (nbTry < 3 && !authenticated);
  }
}

假设虚拟机已配置了网络连接,它应该具有与网络上的任何其他计算机一样的IP地址。只需像打开任何其他计算机一样打开网络连接


请注意,虚拟机的网络连接通常配置为NAT,这意味着只有主机可以直接连接到VM。如果您需要从虚拟机主机以外的其他位置连接到虚拟机(例如,在主机上运行的不是仿真器的Android设备),则需要将虚拟机配置为“桥接”网络,使其可以直接访问LAN。

假设虚拟机已配置了网络连接,它应该有一个IP地址,就像网络上的任何其他计算机一样。只需像打开任何其他计算机一样打开网络连接


请注意,虚拟机的网络连接通常配置为NAT,这意味着只有主机可以直接连接到VM。如果您需要从虚拟机主机以外的其他位置连接到虚拟机(例如,在主机上运行的不是仿真器的Android设备),则需要将虚拟机配置为“桥接”网络,使其可以直接访问LAN。

假设虚拟机已配置了网络连接,它应该有一个IP地址,就像网络上的任何其他计算机一样。只需像打开任何其他计算机一样打开网络连接


请注意,虚拟机的网络连接通常配置为NAT,这意味着只有主机可以直接连接到VM。如果您需要从虚拟机主机以外的其他位置连接到虚拟机(例如,在主机上运行的不是仿真器的Android设备),则需要将虚拟机配置为“桥接”网络,使其可以直接访问LAN。

假设虚拟机已配置了网络连接,它应该有一个IP地址,就像网络上的任何其他计算机一样。只需像打开任何其他计算机一样打开网络连接


请注意,虚拟机的网络连接通常配置为NAT,这意味着只有主机可以直接连接到VM。如果您需要从虚拟机主机以外的其他位置连接到虚拟机,例如不是在主机上运行模拟器的Android设备,则需要将虚拟机配置为“桥接”网络,从而使其可以直接访问LAN。

谢谢Wyzard。但我的意思是,在我的代码中,如何访问VM上的文件?答案是使用网络连接。与普通物理计算机相比,您不必做任何特殊的事情来与VM通信。这只是网络上的另一台电脑,我不明白。你是说在代码中使用网络连接?我不明白。。也许我不清楚?我的意思是,如果.txt文件不在我的项目根目录中,但这次在VM上,我可以在java代码中使用什么来读取它?因为我想这次我将无法使用代码中的内容,对吗?听起来你真正的问题是如何通过Java程序与另一台计算机通信;另一台计算机是虚拟机这一事实与此无关。例如,您可以将文件放在虚拟机中的Web服务器上,并使用Java中的HTTP客户端下载它。但我的意思是,在我的代码中,如何访问VM上的文件?答案是使用网络连接。与普通物理计算机相比,您不必做任何特殊的事情来与VM通信。这只是网络上的另一台电脑,我不明白。你是说在代码中使用网络连接?我不明白。。也许我不清楚?我的意思是,如果.txt文件不在我的项目根目录中,但这次在VM上,我可以在java代码中使用什么来读取它?因为我想这次我将无法使用代码中的内容,对吗?听起来你真正的问题是如何通过Java程序与另一台计算机通信;另一台计算机是虚拟机这一事实与此无关。例如,您可以将文件放在虚拟机中的Web服务器上,并使用Java中的HTTP客户端下载它。但我的意思是,在我的代码中,如何访问VM上的文件?答案是使用网络连接。与普通物理计算机相比,您不必做任何特殊的事情来与VM通信。这只是网络上的另一台电脑,我不明白。你是说在代码中使用网络连接?我不明白。。也许我不清楚?我的意思是,如果.txt文件不在我的项目根目录中,但这次在VM上,我可以在java代码中使用什么来读取它?因为我想这次我将无法使用代码中的内容,对吗?听起来你真正的问题是如何通过Java程序与另一台计算机通信;另一台计算机是虚拟机这一事实与此无关。你
1111
2222
3333
4444
5555
6666
7777
8888
9999