【问题标题】:how to load class file using other computer如何使用其他计算机加载类文件
【发布时间】:2012-03-04 11:09:48
【问题描述】:

您好,我正在尝试使用 LAN 线从其他计算机访问 java 类文件。 我必须从用户文件夹的 ip 192.168.0.1 加载 Tester 类文件!请帮助我如何做到这一点,我的代码描述如下。

import java.net.*;
public class MyLoader {
   public static void main (String argv[]) throws Exception {


      URLClassLoader loader = new URLClassLoader(new URL[] { new URL("\\192.168.0.1\\user") });//ip of other computer  where from  user folder i use Tester class

      // Load class from class loader. argv[0] is the name of the class to be loaded
      Class c = loader.loadClass (argv[0]);

      // Create an instance of the class just loaded
      Object o = c.newInstance();

  }
}

在运行时我使用 [java MyLoader Tester]。 这是我的测试程序 java 文件

public class Tester {

public Tester () {
      System.out.println ("Hello there");
   }

   public static void main(String argv[]) {
     System.out.println("Network Class Loaders");
   }
}

我收到了这个异常错误

 Exception in thread "main" java.net.MalformedURLException: no protocol: \192.168
.0.1\user
        at java.net.URL.<init>(Unknown Source)
        at java.net.URL.<init>(Unknown Source)
        at java.net.URL.<init>(Unknown Source)
        at MyLoader.main(MyLoader.java:7)

【问题讨论】:

  • (未测试)正如异常所暗示的,尝试在 URL 中使用方案,例如,file://192.168.0.1/user

标签: java exception malformedurlexception


【解决方案1】:

\192.168.0.1\user 不是一个有效的 URL,正如异常所说的那样。 URL 需要协议(文件、http、https 等),以便系统知道如何访问资源。

按照 Alexander 的建议,试试 file://192.168.0.1/user - 也可以在浏览器中试试这个,看看这个文件夹是否真的可以通过 file:// URL 访问。

它只是您尝试访问的共享文件夹,还是其他机器上的网络服务器可以使用该文件(在这种情况下使用http 协议)?

【讨论】:

  • 我认为你需要一些额外的 / 或 \ 。我会尝试:new URL("file://\\\\192.168.0.1\\user")
  • 我不打算让它成为 Java 语法(即转义),因为这总是相当不可读 - 但你是正确的,它需要在代码中转义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多