linux编译class
首先uname
-r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname
-r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核
make
menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make
bzImage、make
moles、make
moles
4、安装,make
install
5、.创建系统启动映像,到
/boot
目录下,执行
mkinitramfs
-o
initrd.img-2.6.36
2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于
/boot/grub/grub.cfg
文件的设置,找到if
[
"${linux_gfx_mode}"
!=
"text"
]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry
'Ubuntu,
with
Linux
3.2.0-35-generic'
--class
ubuntu
--class
gnu-linux
--class
gnu
--class
os
{
recordfail
gfxmode
$linux_gfx_mode
insmod
gzio
insmod
part_msdos
insmod
ext2
set
root='(hd0,msdos1)'
search
--no-floppy
--fs-uuid
--set=root
9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic
root=UUID=9961c170-2566-41ac-8155-18f231c1bea5
ro
quiet
splash
$vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改
set
default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。
重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make
menuconfig这一步,改好后就万事ok了。
最后再用uname
-r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
② Windows下编译生成的class文件在linux下运行不成功是怎么回事
对于不同操作系统的编译器肯定是不一样的,不同的编译器所实现的功能,和编译的方式都有所不同,所以同样的源代码无法通过不同的编译器
1 首先是包含的文件名就不一样,头文件的名不一样,预处理器都无法找到要包含的文件
2 有些函数名也不一样,比如多线处理的相关函数,共享内存的相关函数
③ linux编译 java 文件
1.首先用vim 在linux下编写一个名为Test.java的文件,代码如下:
class
Test{ public static void main(String []args){
System.out.println("test input main arguments");
System.out.println(args[0]+" "+args[1]);
System.out.println("end of main"); } }
代码很简单,只有一个main函数用来输出我输入的前两个参数,注意前两个参数如果不输入会抛数组越界 的异常。
2.vim编辑完后按esc进入命令模式,然后shift+ZZ保存并退出。然后通过javac Test.java 即可对该文件进行编译,编译会可以看到在该目录下生成了一个Test.class文件。
3。编译时没有抛出异常说明代码成功编译,接下来看看怎么运行吧,其实也很简单,就通过如下命令即可:
java Test hello world
输出结果是:
test input main arguments
hello world
end of main
④ linux下有能反编译class文件的软件吗
没有完全可以的,想要代码就自己写 这种软件多数是假的,要么就是有毒的 .exe的可执行程序都是已经编译过了,很难恢复为代码
⑤ 我在linux上编译一个Helloworld,可以javac Helloworld(生成class文件了),但是运行java Helloworld报错
路径问题,java的路径有严格的规定,包中的文件名与存放位置必须一致。
⑥ windows下编译的Class 文件在Linux 下不能运行.
当然可以运行
我们开发程序的时候不是都是从windows将程序打包放到linux上面的吗
只是拷贝class要重启服务罢了
⑦ 为什么linux下编译java文件class关键字前边没有public才能成功
跟fedora没关系。我也是fedora。
你的类,比如是Hello,那么文件名因该是Hello.java,要保持一致,才能用public。。
⑧ 如何编译linux源代码
首先uname -r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make bzImage、make moles、make moles
4、安装,make install
5、.创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。
重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。
最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
⑨ LINUX环境下notepadqq如何配置java,直接javac编译,再执行编译后的 .class文件
一般要:
export classpath=.:其他
然后,如果是没有包名的class的话
javac Test.java
java Test
就可以
⑩ linux javac编译可以通过,java执行class文件出错
javac 是把 java file 编译成 .class file。 javac通过是说语法通过。
java执行,是执行该文件。请检查:
1. 假若该java file name 是 Hello.java, 该程序中是否存在public class Hello
2. 运行的是否是 java Hello, 而不是java Hello.class
如果上面都通过,请检查程序逻辑
