2015-08-14 2 views
0

Я написал программу на Java, которая вычисляет площадь треугольника с помощью формулы Херона.Создание исполняемой программы из источников Java с входными параметрами

Она написана с использованием NetBeans со сторонами треугольника, установленным в исходном коде:

public class TriangleArea { 

    public static void main(String[] args) { 
     double side1=6; 
     double side2=8; 
     double side3=10; 

     double s = (side1 + side2 + side3)/2; 

     double area = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); 

     System.out.println("area of the triangle is " + area); 
    } 
} 

Как я могу превратить это в работающую программу, которая запрашивает у пользователя для сторон треугольника и может быть запущена двойным -Изменить это?

+0

Возможный дубликат [Как преобразовать мою программу Java в файл .exe?] (Http://stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to- an-exe-file) – fabian

+0

Ps - как только вы конвертируете его в exe, вы можете захотеть получить параметры для args [] для длин стороны :) –

+0

Создайте файл 'jar' и используйте его на любом компьютере, на котором установлена ​​Java –

ответ

-1

Экспорт в качестве управляемой банки.

Программы Java не могут (не должны) компилироваться в машинный код (EXE-файл), их можно скомпилировать только в байтовый код (файл CLASS) и выполнить с помощью JVM.

Программа не может быть изменена после компиляции. Вы должны либо значения от пользователя хотя STDIN (или аргументы командной строки или файлы)

Простейшая реализация путем получения значений через стандартный ввод

import java.util.Scanner; 

public class TriangleArea { 

    public static void main(String[] args) { 
     double side1=6; 
     double side2=8; 
     double side3=10; 

    Scanner input = new Scanner(System.in); 
    System.out.println("Enter side1"); 
    side1 = input.nextDouble(); 
    System.out.println("Enter side2"); 
    side2 = input.nextDouble(); 
    System.out.println("Enter side3"); 
    side3 = input.nextDouble(); 

     double s = (side1 + side2 + side3)/2; 

     double area = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); 

     System.out.println("area of the triangle is " + area); 
    } 
} 
+0

Вы имеете в виду, что EULA запрещает это? – dotvav

+0

Это не ответ на вопрос, так как он не показывает, как это сделать. – Raniz

+0

@dotvav является основным принципом байт-кода: они могут быть выполнены на любой машине с jvm (x86, x64, ARM и т. Д.), Если на машине есть машина (независимо от машины). При компиляции в EXE его можно выполнить только на этой конкретной машине. Это побеждает цель, поэтому нет официального инструмента для этого. Однако есть сторонние инструменты, которые могут это сделать, но использовать их на свой страх и риск. – shanmuga

0

Чтобы разрешить пользователю изменять параметры, которые вы можете спросить пользователю вводить их с помощью JOptionPane, вы также можете использовать это, чтобы отобразить сообщение:

public class TriangleArea { 

    public static void main(String[] args) { 
     double side1 = getDouble("Length of the first side"); 
     double side2 = getDouble("Length of the second side"); 
     double side3 = getDouble("Length of the third side"); 

     double s = (side1 + side2 + side3)/2; 

     double area = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); 

     JOptionPane.showMessageDialog(null, "area of the triangle is " + area); 
    } 

    /** 
    * Ask the user to input a double. Will continue asking until a valid double is input. 
    * @param message 
    * @return 
    */ 
    public static double getDouble(String message) { 
     while(true) { 
      try { 
       return Double.parseDouble(JOptionPane.showInputDialog(message)); 
      } catch (NumberFormatException e) { 
       JOptionPane.showMessageDialog(null, "That is not a valid number, try again"); 
      } 
     } 
    } 
} 

чтобы разрешить пользователю запускать это, дважды щелкнув по нему в Windows, вы можете создать файл JAR из него. Я не знаком с Netbeans, но в соответствии с this answer по вопросу о том, как сделать это, Вы можете включить его в:

Project Properties -> Build -> Packaging -> Build JAR after compiling

Архиватору должен появиться somewher в вашем проекте, когда вы строите. Обратите внимание, что это потребует от ваших пользователей рабочей установки Java той же версии или позже, чем вы используете.