package dis;
import javaio;
import javamath;
public class dis
{
public static void main(String [] s) throws Exception
{
Float a,b,c;
double x2;
double x1;
Systemoutprintln("请输入a, b, c的值");
BufferedReader bReader=new BufferedReader(new InputStreamReader(Systemin));
a=FloatparseFloat(bReaderreadLine());
b=FloatparseFloat(bReaderreadLine());
c=FloatparseFloat(bReaderreadLine());
if (bb - 4ac <= 0)
Systemoutprintln("输入的系数不对,b2-4ac不大于0!程序退出!");
else
{
x1 = (-b + Mathsqrt(bb - 4ac))/2a;
x2 = (-b - Mathsqrt(bb - 4ac))/2a;
Systemoutprintln("x1 = "+ x1);
Systemoutprintln("x2 = "+x2);
}
return;
}
}
java编译完了生成的都是class字节码文件 无法脱离jre独立运行
你要想摆脱JVM运行java写出来的程序
需要转换到各系统的可执行文件 比如win32下的exe
有些软件是可以做到的
几种比较常用的把java程序转换成exe文件的方法。
一、exe4j
说明:exe4j可以将Jar文件制作成exe文件,但需jre支持,也可将Jar文件放在外面。
软件性质:共享软件
二、JBuilder
说明:新版本的JBuilder可以直接把工程制作成各系统的可执行文件,包括Windows系统。
软件性质:商业软件
三、NativeJ
说明:与exe4j功能类似。
软件性质:共享软件
四、Excelsior JET
说明:可以直接将Java类文件制作成exe文件,除AWT和Swing及第三方图形接口外可不需jre支持(Java50不行)。
软件性质:共享软件
五、jshrink
说明:可将Jar文件打包进exe文件。同时具有混淆功能(这才是它的主要功能)。
软件性质:共享软件
六、InstallAnywhere
说明:打包工具,对Java打包最好用。可打包成各 *** 作系统运行包。包括Windows系统。
软件性质:商业软件。
修改成Java后的代码:
public class Demo {public static int gcd(int a, int b, int c) {
int min, i;
if(a > b) {
if(b > c) {
min = c;
} else {
min = b;
}
} else {
if(a > c) {
min = c;
} else {
min = a;
}
}
if(b > c) {
if(c > a) {
min = a;
} else {
min = c;
}
} else {
if(b > a) {
min = a;
} else {
min = b;
}
}
if(a > c) {
if(c > b) {
min = b;
} else {
min = c;
}
} else {
if(a > b) {
min = b;
} else {
min = a;
}
}
for(i=min; i>=1; i--) {
if(a%i==0 && b%i==0 && c%i==0) {
break;
}
}
return i;
}
public static void main(String[] args) {
int a = 1, b = 0, c = 0, i, k = 0, j = 0, m = 0, n = 0, z, y;
while(a < 9) {
b = 1;
while(b < 9) {
c = 1;
while(c < 9) {
if(gcd(a,b,c) == 1) {
Systemoutprintln(a + ";" + b + ";" + c);
k++;
z = bb - 4ac;
if(z == 0) {
j++;
} else if(z > 0) {
m++;
for (y=1; y<z/2; y++) {
if (yy==z) {
Systemoutprintln("解答是有理数。");
}
}
} else {
n++;
}
}
c++;
}
b++;
}
a++;
}
Systemoutprintln("N = " + k);
Systemoutprintln("N2 = " + j);
Systemoutprintln("N3 = " + m);
Systemoutprintln("N4 = " + n);
i = gcd(a, b, c);
}
}
转化为字节码。
一般java文件编译过后会成为class文件,这个class文件就是字节码。
ava是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
按照你的要求,C语言程序转换成的Java程序如下:
public class GGG {public static String calculateBillMac(String input_str){
String str_buff_8 ="",str_buff_10 = "",str_return = "";
long sum8_1=0,sum8_2=0,sum10_1=0,sum10_2=0;//分别存储八进制和十进制不同算法取值的合计
for(int i=0 ;i < input_strlength();i++){//对输入字符串的每一个字节进行循环
str_buff_8+=IntegertoOctalString(input_strcharAt(i));//将ASCII码值转换成八进制字符串
str_buff_10+=IntegertoString(input_strcharAt(i)); //将ASCII码值转换成十进制字符串
}
for(int i=1;i<=str_buff_8length();i++){
sum8_1 += (str_buff_8charAt(i - 1) - '0')i;
sum8_2 += (str_buff_8charAt(str_buff_8length()-i) - '0')i;
}
for(int i=1;i<=str_buff_10length();i++){
sum10_1 += (str_buff_10charAt(i - 1) - '0')i;
sum10_2 += (str_buff_10charAt(str_buff_10length() - i) - '0')i;
}
str_return=""+sum8_1%10+sum8_2%10+sum10_1%10+sum10_2%10;
return str_return;
}
public static void main(String[] args) {
Systemoutprintln(calculateBillMac("abcdef"));
}
}
运行结果:
2739
这个数据和C语言用字符串"abcdef"测试的结果相同
换下思路,C去调用数据库,然后保存到数据库阿java调用数据库得到C处理完存入数据库的数据就可以了
结构如图这样就少想不同语言间的交流,而且java和C的交互不是很好,貌似java貌似可以支持DLL,但是不方便
我试了一下,jbuilder生成的exe文件,在没有装jre的机器上不能运行,于是我就在该exe文件的同一位置提供一个jre目录,可是该exe文件不会去自动找这个jre,应该怎样做才能使exe文件找到这个jre,并运行起来呢?
先写一个bak,检查有没有jre,有的话就直接运行你的程序,没有的话,先安装再执行。
---------------------------------------------------------------
jbuilder有一个隐藏的技巧可以让你从可执行文件来启动java程序,(不出现console窗口我没有做到)。需要jbuilderx的bin目录下的这些文件:
jbuilderexe
jbuilderwexe (可选)
jbuilderconfig
jdkconfig
“jbuilderexe”是一个通用的可执行外壳文件,用以启动java程序,“jbuilderwexe”好像是javawexe一样,它把“jbuilderexe”包装起来,但是运行时候不显示那个console的窗口。使用这些文件的关键是文件名。“jbuilderexe”查找一个文件叫“jbuilderconfig”的配置文件,里面包含了运行java程序的必须信息。同样的“jbuilderwexe”查找“jbuilderexe”来启动不带console窗口的java程序。如果把jbuilderexe重命名为“fooexe”,那“fooexe”将去寻找“fooconfig”配置文件,同样“jbuilderwexe”被重命名为“foowexe”,它会去寻找“fooexe”文件。
说到这里,聪明的读者应该猜到怎样利用jbuilderexe来启动应用程序了。只要把jbuilderexe,jbuilerwexe,jbuilderconfig改名成相应的文件名,在jbuilderconfig里面指定主类和类路径,就能够通过执行jbuilderexe(或者被改名后的exe文件)来启动java应用程序了。
在\jbuilderx\bin\目录下,后把jbuilderexe,jbuilderconfig,jdkconfig四个文件拷贝到某目录下,然后打开jbuilderconfig文件,作相应的修改:
在jbuilderconfig里面找到下面两行
# start jbuilder using the its main class
mainclass comborlandjbuilderjbuilder ----修改主类为自己希望的类
config里面可以识别的命令可以在jbuilder/bin目录下的config_readmetxt里面找到详细说明。
然后修改jdkconfig里面的javapath相对的路径,例如原来是
javapath /jdk13/bin/java ----修改主类为自己打包的jre路径(可以使相对路径,如/jre)
最后将jbuilderexe,jbuilderconfig修改成所需要的文件名,例如fooexe和fooconfig文件。
下面的小技巧可能更有趣,将jar文件打包进入exe文件!
将jar包附加到jbuilderexe后面去,执行过程:
copy /b \jbuilderexe+hellojar fooexe
一个含jar包的exe文件得到了!
这个过程的大致原理是:exe文件的重要信息都在文件头部,所以把乱七八糟的东西放exe文件尾部是不要紧的;而jar/zip文件的重要信息是在文件尾部的,这样它们两不相干,能够容易的被执行。
以上就是关于把C语言程序转换成Java全部的内容,包括:把C语言程序转换成Java、C语言编程可以实现用命令提示符打开Java程序吗、怎样把一下的C语言程序改成java程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)