为什么的Java程序打不了包
答案:1 悬赏:30 手机版
解决时间 2021-05-08 14:33
- 提问者网友:喧嚣尘世
- 2021-05-07 13:40
为什么的Java程序打不了包
最佳答案
- 五星知识达人网友:上分大魔王
- 2021-05-07 15:17
java是个不错的语言,也都知道它是个解释性语言,反正是不可以直接做成可执行文件的。不过也不完全是,有的工具确定可以生成.exe呀。可是生成exe以后就失去了它跨平台的优势了。难道运行java非要在命令行里java *?
其实java自己有一个很好的解决方案,就是做成jar包,然后你双击它就可以运行了。
如果你用windows就方便了,其实我也就知道windows下面用,linux我不敢保证。
第一步当然是coding了。
做个简单的class吧,Hello, World!
代码: [复制代码]
// CHello.java class CHello { public static void main(String[] args) { System.out.println("Hello, World"); } }
然后编译它,生成一个CHello.class文件,执行它java CHello,屏幕上显示Hello, World!。嘿嘿,没做错,我不会用java,我只会做C/C++。
然后你打开记事本,输入以下内容。
代码: [复制代码]
Created-By: Melody Main-Class: CHello
保存成*.mf文件,你可以随便起个名字,但扩展名要是mf。这里我们起成hello.mf注意Creat-By:和Main-Class:后面都要有个空格。最后还要加上一个回车。不加可过不了的。其实第一行要不要都无所谓,主要是第二行,指出我们的main在哪个类里。
然后放在同一目录
jar cvfm hello.jar hello.mf CHello.class
这样就做好了!
你在cmd?*葱衘ava -jar hello.jar就可以看见结果了。
什么?我骗你?还要用命令行?晕,你不会把这个jar类型的打开方式指向java -jar呀,这样双击不就OK了?
有时候我们会看见网上的教程这么写
代码: [复制代码]
... Main-Class: hello.CHello
它给你解释是这个class在哪个目录,其实你就是建个文件夹,把文件放进去,还是不可以执行。小弟刚用的时候也是抓狂了许久,原因是这样的。
代码: [复制代码]
package hello; // 这里这句是最重要的 class CHello { public static void main(String[] args) { System.out.print("Hello "); System.out.println(System.getProperty("user.name")); } }
你看见那句后面有注释的代码了吗?那才是主要问题所在,你非得有这一句了,然后你把你的class放在这个目录下比如例子上是hello包,那么你就放在hello文件夹里。然后hello.mf这么写
代码: [复制代码]
Created-By: Melody Main-Class: hello.CHello
然后执行
jar cvfm hello.jar hello.mf .\hello\*
注意,hello.mf可不是放在hello目录里的,是和hello同级目录。你想放进去也没什么呀。
jar cvfm hello.jar .\hello\hello.mf .\hello\*
这就一切OK了。
这上面都是用的win,你如果是linux,可能要把"\"改成"/"
在win下有更方便的方法,自己做什么*.mf呀,我这种懒人不做这种事。直接
jar cvf hello.jar hello.class
生成一个hello.jar,用你的winrar打开它,在META-INF里找MAINFEST.MF,打开它,你手工改一改就行了,连解压都不用,问你要不要更改,点确定就可以了。然后试试,可以执行了,呵呵。。
用winrar打开以后,那个文件的编辑方法和刚才说的一样。
其实java自己有一个很好的解决方案,就是做成jar包,然后你双击它就可以运行了。
如果你用windows就方便了,其实我也就知道windows下面用,linux我不敢保证。
第一步当然是coding了。
做个简单的class吧,Hello, World!
代码: [复制代码]
// CHello.java class CHello { public static void main(String[] args) { System.out.println("Hello, World"); } }
然后编译它,生成一个CHello.class文件,执行它java CHello,屏幕上显示Hello, World!。嘿嘿,没做错,我不会用java,我只会做C/C++。
然后你打开记事本,输入以下内容。
代码: [复制代码]
Created-By: Melody Main-Class: CHello
保存成*.mf文件,你可以随便起个名字,但扩展名要是mf。这里我们起成hello.mf注意Creat-By:和Main-Class:后面都要有个空格。最后还要加上一个回车。不加可过不了的。其实第一行要不要都无所谓,主要是第二行,指出我们的main在哪个类里。
然后放在同一目录
jar cvfm hello.jar hello.mf CHello.class
这样就做好了!
你在cmd?*葱衘ava -jar hello.jar就可以看见结果了。
什么?我骗你?还要用命令行?晕,你不会把这个jar类型的打开方式指向java -jar呀,这样双击不就OK了?
有时候我们会看见网上的教程这么写
代码: [复制代码]
... Main-Class: hello.CHello
它给你解释是这个class在哪个目录,其实你就是建个文件夹,把文件放进去,还是不可以执行。小弟刚用的时候也是抓狂了许久,原因是这样的。
代码: [复制代码]
package hello; // 这里这句是最重要的 class CHello { public static void main(String[] args) { System.out.print("Hello "); System.out.println(System.getProperty("user.name")); } }
你看见那句后面有注释的代码了吗?那才是主要问题所在,你非得有这一句了,然后你把你的class放在这个目录下比如例子上是hello包,那么你就放在hello文件夹里。然后hello.mf这么写
代码: [复制代码]
Created-By: Melody Main-Class: hello.CHello
然后执行
jar cvfm hello.jar hello.mf .\hello\*
注意,hello.mf可不是放在hello目录里的,是和hello同级目录。你想放进去也没什么呀。
jar cvfm hello.jar .\hello\hello.mf .\hello\*
这就一切OK了。
这上面都是用的win,你如果是linux,可能要把"\"改成"/"
在win下有更方便的方法,自己做什么*.mf呀,我这种懒人不做这种事。直接
jar cvf hello.jar hello.class
生成一个hello.jar,用你的winrar打开它,在META-INF里找MAINFEST.MF,打开它,你手工改一改就行了,连解压都不用,问你要不要更改,点确定就可以了。然后试试,可以执行了,呵呵。。
用winrar打开以后,那个文件的编辑方法和刚才说的一样。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯