Windows下编译生成的class文件反编译在linux下运行不成功是怎么回事

09:46 提问
linux程序在windows下编译并生成exe文件
由于硬件限制,原本在linux下运行的c++程序现在需要改为运行在windows环境下。请问有没有什么好的方法,可以将已经编写好的linux程序在windows下重新编译,生成exe文件?多谢!
按赞数排序
可以安装Cygwin模拟Linux环境,在Cygwin下编译出来的程序是exe文件。
主要是API的移植,特别是界面的代码不同,在VC中新建一个项目,把源代码都包括进来,然后把算法以及和界面无关的部分保留,其余粘贴在各自的位置,再调试下。
可能是你安装Cygwin时没有装完全,少了库
用mingw来编译
790关注|675收录
626关注|105收录
400关注|633收录请问win下用cygwin gcc生成的so文件,linux下用不了把,必须linux重新编译把?
[问题点数:40分,结帖人tangtangtangbaoli]
请问win下用cygwin gcc生成的so文件,linux下用不了把,必须linux重新编译把?
[问题点数:40分,结帖人tangtangtangbaoli]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年9月 C/C++大版内专家分月排行榜第二2011年4月 C/C++大版内专家分月排行榜第二2010年11月 C/C++大版内专家分月排行榜第二
2011年6月 C/C++大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。问题描述:这个java小程序在windows下编译成功了,但是可以运行一部分,也就是程序执行到了一定的位置就出现问题.报错一大堆看不懂,看起来是包的问题.但是把这个class文件移到linux 下运行看看,直接就不能运行了.开始就报错.这是截图&img data-rawheight=&463& data-rawwidth=&723& src=&/93c200caafafc319d25dc6_b.jpg& class=&origin_image zh-lightbox-thumb& width=&723& data-original=&/93c200caafafc319d25dc6_r.jpg&&难道java的class运行时也要依赖包么?(比如我在ubuntu下就没有装那些包).&br&&b&==========================================================&br&下面补充点信息(代码,以及windows下的报错信息)&/b&&br&&div class=&highlight&&&pre&&code class=&language-java&&&span class=&kn&&import&/span& &span class=&nn&&org.apache.http.HttpResponse&/span&&span class=&o&&;&/span&
&span class=&kn&&import&/span& &span class=&nn&&org.apache.http.util.EntityUtils&/span&&span class=&o&&;&/span&
&span class=&kn&&import&/span& &span class=&nn&&mons.logging.*&/span&&span class=&o&&;&/span&
&span class=&kn&&import&/span& &span class=&nn&&org.apache.http.impl.client.HttpClients&/span&&span class=&o&&;&/span&
&span class=&kn&&import&/span& &span class=&nn&&org.apache.http.client.methods.*&/span&&span class=&o&&;&/span&
&span class=&kn&&import&/span& &span class=&nn&&net.sf.json.JSONObject&/span&&span class=&o&&;&/span&
&span class=&cm&&/*import java.io.InputStreamR&/span&
&span class=&cm&&import java.io.BufferedR */&/span&
&span class=&kn&&import&/span& &span class=&nn&&java.util.Scanner&/span&&span class=&o&&;&/span&
&span class=&kn&&import&/span& &span class=&nn&&java.net.*&/span&&span class=&o&&;&/span&
&span class=&kn&&import&/span& &span class=&nn&&java.io.*&/span&&span class=&o&&;&/span&
&span class=&kd&&public&/span& &span class=&kd&&class&/span& &span class=&nc&&Apitest&/span& &span class=&o&&{&/span&
&span class=&kd&&public&/span& &span class=&kd&&static&/span& &span class=&kt&&void&/span& &span class=&nf&&main&/span&&span class=&o&&(&/span&&span class=&n&&String&/span&&span class=&o&&[]&/span& &span class=&n&&args&/span&&span class=&o&&)&/span& &span class=&kd&&throws&/span& &span class=&n&&IOException&/span& &span class=&o&&{&/span&
&span class=&n&&String&/span& &span class=&n&&APIKEY&/span& &span class=&o&&=&/span& &span class=&s&&&9aed5af08e6bcc09a22f299c3b616ec7&&/span&&span class=&o&&;&/span&
&span class=&n&&Scanner&/span& &span class=&n&&in&/span& &span class=&o&&=&/span& &span class=&k&&new&/span& &span class=&n&&Scanner&/span&&span class=&o&&(&/span&&span class=&n&&System&/span&&span class=&o&&.&/span&&span class=&na&&in&/span&&span class=&o&&);&/span&
&span class=&kt&&boolean&/span& &span class=&n&&flag&/span& &span class=&o&&=&/span& &span class=&kc&&true&/span&&span class=&o&&;&/span&
&span class=&n&&System&/span&&span class=&o&&.&/span&&span class=&na&&out&/span&&span class=&o&&.&/span&&span class=&na&&println&/span&&span class=&o&&(&/span&&span class=&s&&&I am a TuLing robert~ You can ask me any qusetions~.Now go on ~!(Exit to quit.)&&/span&&span class=&o&&);&/span&
&span class=&n&&System&/span&&span class=&o&&.&/span&&span class=&na&&out&/span&&span class=&o&&.&/span&&span class=&na&&println&/span&&span class=&o&&(&/span&&span class=&s&&&Please make sure you have connect the Internet.\n&&/span&&span class=&o&&);&/span&
&span class=&k&&while&/span& &span class=&o&&(&/span&&span class=&n&&flag&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&System&/span&&span class=&o&&.&/span&&span class=&na&&out&/span&&span class=&o&&.&/span&&span class=&na&&print&/span&&span class=&o&&(&/span&&span class=&s&&&You say: &&/span&&span class=&o&&);&/span&
&span class=&n&&String&/span& &span class=&n&&str&/span& &span class=&o&&=&/span& &span class=&n&&in&/span&&span class=&o&&.&/span&&span class=&na&&nextLine&/span&&span class=&o&&();&/span&
&span class=&k&&if&/span&&span class=&o&&(&/span&&span class=&n&&str&/span&&span class=&o&&.&/span&&span class=&na&&equals&/span&&span class=&o&&(&/span&&span class=&s&&&Exit&&/span&&span class=&o&&))&/span& &span class=&o&&{&/span&
&span class=&n&&flag&/span& &span class=&o&&=&/span& &span class=&kc&&false&/span&&span class=&o&&;&/span&
&span class=&k&&continue&/span&&span class=&o&&;&/span&
&span class=&o&&}&/span&
&span class=&n&&String&/span& &span class=&n&&INFO&/span& &span class=&o&&=&/span& &span class=&n&&URLEncoder&/span&&span class=&o&&.&/span&&span class=&na&&encode&/span&&span class=&o&&(&/span&&span class=&n&&str&/span&&span class=&o&&,&/span& &span class=&s&&&utf-8&&/span&&span class=&o&&);&/span&
&span class=&n&&String&/span& &span class=&n&&requesturl&/span& &span class=&o&&=&/span& &span class=&s&&&/openapi/api?key=&&/span&&span class=&o&&+&/span&&span class=&n&&APIKEY&/span&&span class=&o&&+&/span&&span class=&s&&&&info=&&/span&&span class=&o&&+&/span&&span class=&n&&INFO&/span&&span class=&o&&;&/span&
&span class=&n&&HttpGet&/span& &span class=&n&&request&/span& &span class=&o&&=&/span& &span class=&k&&new&/span& &span class=&n&&HttpGet&/span&&span class=&o&&(&/span&&span class=&n&&requesturl&/span&&span class=&o&&);&/span&
&span class=&n&&HttpResponse&/span& &span class=&n&&response&/span& &span class=&o&&=&/span& &span class=&n&&HttpClients&/span&&span class=&o&&.&/span&&span class=&na&&createDefault&/span&&span class=&o&&().&/span&&span class=&na&&execute&/span&&span class=&o&&(&/span&&span class=&n&&request&/span&&span class=&o&&);&/span&
&span class=&k&&if&/span&&span class=&o&&(&/span&&span class=&n&&response&/span&&span class=&o&&.&/span&&span class=&na&&getStatusLine&/span&&span class=&o&&().&/span&&span class=&na&&getStatusCode&/span&&span class=&o&&()==&/span&&span class=&mi&&200&/span&&span class=&o&&)&/span& &span class=&o&&{&/span&
&span class=&n&&String&/span& &span class=&n&&result&/span& &span class=&o&&=&/span& &span class=&n&&EntityUtils&/span&&span class=&o&&.&/span&&span class=&na&&toString&/span&&span class=&o&&(&/span&&span class=&n&&response&/span&&span class=&o&&.&/span&&span class=&na&&getEntity&/span&&span class=&o&&());&/span&
&span class=&n&&System&/span&&span class=&o&&.&/span&&span class=&na&&out&/span&&span class=&o&&.&/span&&span class=&na&&println&/span&&span class=&o&&(&/span&&span class=&n&&result&/span&&span class=&o&&+&/span&&span class=&s&&&\n&&/span&&span class=&o&&);&/span&
&span class=&n&&JSONObject&/span& &span class=&n&&jo&/span& &span class=&o&&=&/span& &span class=&n&&JSONObject&/span&&span class=&o&&.&/span&&span class=&na&&fromObject&/span&&span class=&o&&(&/span&&span class=&n&&result&/span&&span class=&o&&);&/span& &span class=&c1&&// 原因在此...&/span&
&span class=&n&&System&/span&&span class=&o&&.&/span&&span class=&na&&out&/span&&span class=&o&&.&/span&&span class=&na&&println&/span&&span class=&o&&(&/span&&span class=&n&&jo&/span&&span class=&o&&.&/span&&span class=&na&&getString&/span&&span class=&o&&(&/span&&span class=&s&&&code&&/span&&span class=&o&&));&/span&
&span class=&c1&&// 加上这段编译没&/span&
&span class=&n&&System&/span&&span class=&o&&.&/span&&span class=&na&&out&/span&&span class=&o&&.&/span&&span class=&na&&println&/span&&span class=&o&&(&/span&&span class=&n&&jo&/span&&span class=&o&&.&/span&&span class=&na&&getString&/span&&span class=&o&&(&/span&&span class=&s&&&text&&/span&&span class=&o&&));&/span&
&span class=&c1&&// 问题,但运行时&/span&
&span class=&o&&}&/span&
&span class=&c1&&// 就线程异常了。&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&span class=&o&&}&/span&
&/code&&/pre&&/div&&br&下面是win下报错截图&br&&img data-rawheight=&587& data-rawwidth=&677& src=&/585e448dc93f2ae91fa404fab9a9fce5_b.jpg& class=&origin_image zh-lightbox-thumb& width=&677& data-original=&/585e448dc93f2ae91fa404fab9a9fce5_r.jpg&&可以看到程序是可以运行一部分的。
问题描述:这个java小程序在windows下编译成功了,但是可以运行一部分,也就是程序执行到了一定的位置就出现问题.报错一大堆看不懂,看起来是包的问题.但是把这个class文件移到linux 下运行看看,直接就不能运行了.开始就报错.这是截图难道java的class运行时也要依赖包么?(比如我在ubuntu下就没有装那些包).==========================================================下面补充点信息(代码,以及windows下的报错信息)…
java说的跨平台有点像闹着玩儿哒,不是那么可靠,还有,题主不会看异常信息么?
题主你竟然真的好意思看着自己的截图告诉我们“报错一大堆”,这报错加起来都没有20行,而且第一行就说明了原因,下面的都是错误位置。&br&&br&真是……题主你需要补课两件事情,&br&1. 百度搜索 How to ask questions the smart way。&br&2. 别不看英文信息。&br&&br&妈的,我觉得知乎注册的时候就应该不读完这份文档不让注册。&br&&br&========================================================&br&&br&贴出了win下报错信息。&br&&br&错误也是很明显, 缺少依赖, 你调用的JSON解析库使用了Apache Commons的库,你可以考虑下一个Apache Commons的库。貌似用的是Json-lib, 比较旧的库了。&br&&br&你也可以考虑改成&a class=& wrap external& href=&///?target=https%3A///douglascrockford/JSON-java& target=&_blank& rel=&nofollow noreferrer&&douglascrockford/JSON-java · GitHub&i class=&icon-external&&&/i&&/a& 这个库,工作量不会大的,初学肯定可以搞定,这个应该不依赖Apache Commons。
题主你竟然真的好意思看着自己的截图告诉我们“报错一大堆”,这报错加起来都没有20行,而且第一行就说明了原因,下面的都是错误位置。 真是……题主你需要补课两件事情, 1. 百度搜索 How to ask questions the smart way。 2. 别不看英文信息。 妈的,我…
题主在Windows上是用JDK8的吧?&br&而在Linux上用的是JDK6或者JDK7。&br&&br&如果只用了纯Java API而没有显式用native方法的话Java的可移植性还不错的啦。
题主在Windows上是用JDK8的吧? 而在Linux上用的是JDK6或者JDK7。 如果只用了纯Java API而没有显式用native方法的话Java的可移植性还不错的啦。
已有帐号?
无法登录?
社交帐号登录
I know nothing教你如何在windows下编译linux生成windows的可执行程序
首先在下载最新的cygwin.exe,这个文件很小,大概几百K吧,之后运行程序
之后下一步,直到出现下面的画面
这个是选择网站下载镜像的,随便选一个就行,连接出错误的话就选择其他的网下载
之后选择下面的选项,下面的两步骤是安装gcc编译器的
其他的直接NEXT就行了,然后就是漫长的等待了,比较大
安装完成以后就可以在windows下编译linux程序了,不过有些和linux指令有一点点的区别,
编译后想运行生成的.exe文件的话需要在cygwin目录下搜索出一个叫cygwin1.dll的文件,将这个文件放到和GCC生成的文件目录下,然后就可以运行了(注意在gcc
编译时,生成的文件格式是.exe)
另外,你也可以将安装好的cygwin/bin目录加入到你的windows的环境变量中,这样你在你的电脑中运行-&cmd下也可以运行和编译linux文件了
windows的环境变量设置方法:我的电脑右键-&属性-&高级-&环境变量-&在下面的那个窗口中找到Path选项,然后编辑
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
在后面加入 ;C:\cygwin\bin
最前面有分号的哦!!(要写英文的分号!!!)
经过漫长的安装,现在你应该就可以正常使用你pc下的cmd了,当然,你的cmd是支持linux指令的,呵呵
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。我在linux环境下怎么就是编译不成功_百度知道

我要回帖

更多关于 .class反编译 的文章

 

随机推荐