Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以Java开头的Java类名_Java - Fatal编程技术网

以Java开头的Java类名

以Java开头的Java类名,java,Java,我有一个我正在导入的java类,名为java.net_y。我的代码可以编译,但当我尝试运行它时,我得到: Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.net_y 我读过其他关于试图覆盖核心java类(如java.io)的文章……这不是我正在做的……我所拥有的这个外部类的名称很糟糕 另一个线程提到了反射…不确定是否需要反射 我能做什么 我能做什么 重命名该类 我能做什么

我有一个我正在导入的java类,名为java.net_y。我的代码可以编译,但当我尝试运行它时,我得到:

Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.net_y
我读过其他关于试图覆盖核心java类(如java.io)的文章……这不是我正在做的……我所拥有的这个外部类的名称很糟糕

另一个线程提到了反射…不确定是否需要反射

我能做什么

我能做什么

重命名该类

我能做什么

重命名该类。

您可以使用对导入的内容进行反向工程,进行必要的更改,然后重新编译

我实际上假设您正在尝试导入某种.jar文件或类似的东西。如果只导入一个类,则只需重命名它。

可以使用对导入内容进行反向工程,进行必要的更改,然后重新编译


我实际上假设您正在尝试导入某种.jar文件或类似的东西。如果您只导入一个类,那么您所需要做的就是重命名它。

如果该类是从web服务WSDL生成的,最好是重新生成它并强制将包名改为其他名称。
大多数WSDL-to-java工具都有参数可以让您这样做。

如果该类是从web服务WSDL生成的,最好是重新生成它并强制将包名改为其他名称。
大多数WSDL-to-java工具都有参数可以让您这样做。

我应该重命名您的类。不能将类放入java包中。看

java.lang.ClassLoader#predefineClass()
这是一个私有方法,可执行以下检查:

if ((name != null) && name.startsWith("java.")) {
    throw new SecurityException("Prohibited package name: " +
                name.substring(0, name.lastIndexOf('.')));
}
据我所知,这正是你所看到的例外

有时人们不得不重写JDK中的类。这不是你的情况,但我想提一下以防万一。要做到这一点,您必须将这个被重写的类放到

-Xbootclasspath
而不是普通的

-classpath

当您运行JVM时,我应该重命名您的类。不能将类放入java包中。看

java.lang.ClassLoader#predefineClass()
这是一个私有方法,可执行以下检查:

if ((name != null) && name.startsWith("java.")) {
    throw new SecurityException("Prohibited package name: " +
                name.substring(0, name.lastIndexOf('.')));
}
据我所知,这正是你所看到的例外

有时人们不得不重写JDK中的类。这不是你的情况,但我想提一下以防万一。要做到这一点,您必须将这个被重写的类放到

-Xbootclasspath
而不是普通的

-classpath

当您运行JVM时

并不是那么简单……该类实际上是一个Web服务……由WSDL生成。您还可以使用自定义类加载器进行调查。。。我不会留下这个答案,因为它绝对不是正确的答案-@Yusuf,您能从WSDL重新生成web服务代理吗?这次尝试在不同的包中创建代理类?@Yusuf-然后您需要重新生成,对其进行配置,以便生成的类这次获得不同的包。或者如果它是外部的,也就是别人给你的,那么告诉他们重新生成它,因为他们给了你一些不可用的东西。@Grundlefleck帮不上忙。您仍然需要使用类加载器来定义类,而类将拒绝。这并不是那么简单…该类实际上是一个Web服务…由WSDL生成。您还可以使用自定义类加载器进行调查。。。我不会留下这个答案,因为它绝对不是正确的答案-@Yusuf,您能从WSDL重新生成web服务代理吗?这次尝试在不同的包中创建代理类?@Yusuf-然后您需要重新生成,对其进行配置,以便生成的类这次获得不同的包。或者如果它是外部的,也就是别人给你的,那么告诉他们重新生成它,因为他们给了你一些不可用的东西。@Grundlefleck帮不上忙。您仍然需要使用ClassLoader来定义类,而类将被拒绝。也许可以将该包放在另一个包中?所以它就变成了mypackage.java.met_\y我们可以把这个包放到另一个包中吗?所以它变成了mypackage.java.met_y