java $1.class_java编译后的文件出现xx$1.class的原因及解决方式

java编译后的文件名字带有$接数字的就是匿名内部类的编译结果,接名字的就是内部类的编译结果

例如:

TestFrame$1.class是匿名内部类的编译结果,TestFrame$MyJob.class则是内部类MyJob编译后得到的.

使用内部类可以隐藏一些实现的细节, 等等, 还有其他一些好处. 使用匿名类的时候, 要注意代码的可读性

补充知识:JNI之javah使用时报错:找不到类文件

初学java,想使用JNI,在用javah生成头文件时,总是报错找不到类;

看了javah的help,本来是很简单的,但是由于自己概念含糊,所以出错。

javah的命令行帮助:

用法:javah [选项] 其中 [选项] 包括:

-help 输出此帮助消息并退出

-classpath 用于装入类的路径

-bootclasspath 用于装入引导类的路径

-d 输出目录

-o 输出文件(只能使用 -d 或 -o 中的一个)

-jni 生成 JNI样式的头文件(默认)

-version 输出版本信息

-verbose 启用详细输出

-force 始终写入输出文件使用全限定名称指定 (例如,java.lang.Object)。

假如有这样的类:

package mwic32;

public

class Main {

public native String GetICSN( int CommPort);

static

{

System.loadLibrary("MwIc32.dll");

}

public static void main(String[] args)

{

// TODO code application logic here

}

}

假如项目目录是:F:/NetBeansProjects,那么编译后生成的class文件会位于F:/NetBeansProjects/MwIC32/build/classes/mwic32现在希望用JAVAH生成头文件。

javah -classpath F:/NetBeansProjects/MwIC32/build/classes mwic32.Main

也就是说,指定类的路径时,应该以包所在路径为准,而不是具体类所在的子目录

以上这篇java编译后的文件出现xx$1.class的原因及解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值