我最近开始学习Java并且已经成功编写和编译我自己的应用程序(用Sublime Text编写,文本编辑器,并通过javac编译)。
当通过终端启动时应用程序运行完美(或者如果我在我的Windows PC上,则命令提示符),但是如果我尝试从文件本身启动它(在Windows中,双击它并确保Java是开放的 - 使用方法,或者在我的Ubuntu笔记本电脑上,使其可执行并执行相同的操作)我得到一个非常短暂的加载光标,然后什么都没有。
应用程序(在摄氏度和华氏度之间转换)使用一些简单的Swing对话框来获取用户的输入并显示结果。
import javax.swing.*;
public class DegreesConversion
{
public static void main( String [] args)
{
String input = JOptionPane.showInputDialog("Enter a temperature followed by either C for Celcius or F for Fahrenheit\nE.g. 30C or 86F");
int degrees = Integer.parseInt(input.substring(0,input.length()-1));
switch (input.toLowerCase().contains("f") ? 0 : input.toLowerCase().contains("c") ? 1 : 2){
case 1:
JOptionPane.showMessageDialog(null,(((degrees*9)/5)+32)+" degrees Fahrenheit", "Conversion complete", JOptionPane.INFORMATION_MESSAGE);
break;
case 0:
JOptionPane.showMessageDialog(null,(((degrees-32)*5)/9)+" degrees Celcius","Conversion complete",JOptionPane.INFORMATION_MESSAGE);
break;
default:
JOptionPane.showMessageDialog(null, "The input you entered was not recognised!","Unknown input", JOptionPane.ERROR_MESSAGE);
break;
}
}
}
(这绝不意味着是一个严肃或功能非常强大的应用程序,它只是我自己尝试用Java创建的东西)
无论如何,我不确定为什么这个应用程序在编译时只在使用“java DegreesConversion”从CLI启动时才起作用,而不是在通过双击启动时。我已经在Google和Stackoverflow上寻找了有关此问题的答案,但是没有找到任何相关解决方案附近的内容,也没有提示为什么会这样。
我在考虑Java .class文件不能像.jars一样执行? 非常感谢任何帮助!
答案 0 :(得分:5)
将您的类打包到一个jar文件中,并向其添加一个清单,指向具有您要执行的主方法的类。
然后您可以从终端执行java -jar jarFile.jar
,但也可以轻松地运行它,例如Windows Open-With功能。
编辑: JAR tutorial