Erinevus lehekülje "Java" redaktsioonide vahel

Allikas: Kuutõrvaja
(Kasulikud lisamaterjalid)
(Java paigaldamine)
 
(ei näidata 2 kasutaja 24 vahepealset redaktsiooni)
1. rida: 1. rida:
 
===Sissejuhatus===
 
===Sissejuhatus===
  
TODO
+
Siin palas ei tule juttu mitte Tsehhis toodetud mootorrattast vaid ühest keelest.
 +
 
 +
* JRE: Java Runtime Environment. Tegemist on java virtuaalmasinaga kus java programmid töötavad. Ühtlasi sisaldab see browseri pluginat ja appleti käivitamist.
 +
 
 +
* JDK: Täielik tarkvara arenduskomplekt javale, sisaldades ühtlasi ka jre-d, kompilaarorit ja töövahendeid (näiteks JavaDoc, Java Debugger) selleks, et luua ja kompileerida programme.
 +
 
 +
[[Pilt:CBNux.png]]
  
 
===Java paigaldamine===
 
===Java paigaldamine===
  
TODO
+
Esiteks on olemas Oracle JDK ja Open JDK
 +
 
 +
* Oracle (varasemalt Sun) JDK, suletud koodiga java, koos kommertsiaalse toega oracle enda asjadele.
 +
* OpenJDK, avatud koodiga java. Oracle poolt vabaks antud osa koodist.
  
 
===Java kasutamine===
 
===Java kasutamine===
27. rida: 36. rida:
 
  Hello, World
 
  Hello, World
  
===Ühendus andmebaasiga===
+
===Java paketid===
 +
 
 +
$ find . -ls
 +
8212    4 drwxr-xr-x  3 root    root        4096 Apr  8 11:27 .
 +
8214    4 drwxr-xr-x  2 root    root        4096 Apr  8 11:27 ./ee/tartu/loomaaed
 +
8217    4 -rw-r--r--  1 root    root          127 Apr  8 11:24 ./ee/tartu/loomaaed/HelloWorld.java
 +
8219    4 -rw-r--r--  1 root    root          428 Apr  8 11:27 ./ee/tartu/loomaaed/HelloWorld.class
 +
 
 +
Kompileerimiseks
 +
 
 +
$ javac ee/tartu/loomaaed/HelloWorld.java
 +
 
 +
Käivitamiseks
 +
 
 +
$ java ee.tartu.loomaaed.HelloWorld
 +
Hello World
 +
 
 +
===Klassid===
 +
 
 +
package ee.tartu.loomaaed;
 +
 +
public class HelloWorld {
 +
  public static void main(String[] args) {
 +
 
 +
    arvutaja arvuti = new arvutaja();
 +
    int summa = arvuti.liitja(4,3);
 +
    int vahe = arvuti.lahutaja(4,3);
 +
    System.out.println(summa);
 +
    System.out.println(vahe);
 +
  }
 +
}
 +
 +
class arvutaja {
 +
  public int liitja(int a, int b) {
 +
    return a + b;
 +
  }
 +
 +
  public int lahutaja(int a, int b) {
 +
    return a - b;
 +
  }
 +
}
 +
 
 +
kus
 +
 
 +
* class arvutaja { ... } - klass, milles on kirjeldatud kaks funktsiooni, ehk õigemini meetodit, liitja ja lahutaja
 +
* arvutaja arvuti = new arvutaja(); - moodustatakse arvutaja alusel uus objekt nimega arvuti
 +
* arvuti.liitja(4,3); - kasutatajase objekti arvuti meetodit liitja argumentidega 4 ja 3
 +
 
 +
Kompileerimine ja kasutamine toimub nagu eelmisel juhul.
 +
 
 +
===Ühendus Oracle andmebaasiga===
 +
 
 +
Nt Oracle andmebaasiga suhtlemiseks on vajalik draiver ojdbc14.jar (v. 10.2) või ojdbc6.jar (v. 11.2)
 +
 
 +
$ cat HelloOracle.java
 +
import java.sql.*;
 +
import java.sql.DriverManager;
 +
import java.sql.SQLException;
 +
import java.net.*;
 +
 +
public class HelloOracle
 +
    {
 +
        public static void main(String args[]) throws SQLException {
 +
            Connection con = null;
 +
            try {
 +
                Class.forName("oracle.jdbc.driver.OracleDriver");
 +
                con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.64:1521:loom", \
 +
                  "mart", "mardiparool");
 +
                Statement st = con.createStatement();
 +
                ResultSet rs = st.executeQuery("select BANNER from SYS.V_$VERSION");
 +
                while(rs.next()) {
 +
                      System.out.println(rs.getString(1));
 +
                }
 +
            } catch (Exception e) {
 +
                e.printStackTrace();
 +
            } finally {
 +
                if(con != null) {
 +
                    con.close();
 +
                }
 +
            }
 +
        }
 +
    }
 +
 
 +
kus
 +
 
 +
* loom - oracle baasi SID
 +
 
 +
Kompileerimiseks
 +
 
 +
$ export CLASSPATH=ojdbc14.jar:.
 +
$ javac HelloOracle.java
 +
 
 +
ja käivitamiseks
 +
 
 +
$ java HelloOracle
 +
 
 +
Kasulikud lisamaterjalid
 +
 
 +
* http://www.orafaq.com/wiki/JDBC
 +
* http://www.orafaq.com/wiki/EZCONNECT
 +
 
 +
===Ühendus PostgreSQL andmebaasiga===
 +
 
 +
$ cat HelloPostgresql.java
 +
import java.sql.*;
 +
import java.sql.DriverManager;
 +
import java.sql.SQLException;
 +
import java.net.*;
 +
 +
public class HelloPostgresql
 +
      {
 +
          public static void main(String args[]) throws SQLException {
 +
              Connection con = null;
 +
              try {
 +
                  Class.forName("org.postgresql.Driver");
 +
                  con = DriverManager.getConnection("jdbc:postgresql://127.0.0.1/test", "priit", "parool");
 +
                  Statement st = con.createStatement();
 +
                  ResultSet rs = st.executeQuery("SELECT * FROM priit.inimene");
 +
                  while(rs.next()) {
 +
                      System.out.println(rs.getString("nimi"));
 +
                  }
 +
              } catch (Exception e) {
 +
                  e.printStackTrace();
 +
              } finally {
 +
                  if(con != null) {
 +
                      con.close();
 +
                  }
 +
              }
 +
          }
 +
      }
 +
 
 +
Kompileerimiseks
 +
 
 +
$ export CLASSPATH=postgresql-8.4-701.jdbc3.jar:.
 +
$ javac HelloPostgresql.java
 +
 
 +
Käivitamiseks
 +
 
 +
$ java HelloPostgresql
 +
 
 +
===Ühendus MySQL andmebaasiga===
 +
 
 +
Kopeerida draiver aadressilt http://dev.mysql.com/downloads/connector/j/
 +
 +
$ tar zxf mysql-connector-java-5.1.12.tar.gz
 +
 
 +
Näiteks selline programm esitab andmebaasi test tabeli inimene tulba nimi väärtused
 +
 
 +
$ cat HelloMySQL.java
 +
import java.sql.*;
 +
import java.sql.DriverManager;
 +
import java.sql.SQLException;
 +
import java.net.*;
 +
 +
public class HelloMySQL
 +
    {
 +
        public static void main(String args[]) throws SQLException {
 +
            Connection con = null;
 +
            try {
 +
                Class.forName("com.mysql.jdbc.Driver").newInstance();
 +
                con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/baasinimi?" + \
 +
                  "user=kasutajanimi& password=parool");
 +
                Statement st = con.createStatement();
 +
                ResultSet rs = st.executeQuery("SELECT * FROM inimene");
 +
                while(rs.next()) {
 +
                      System.out.println(rs.getString("nimi"));
 +
                }
 +
            } catch (Exception e) {
 +
                e.printStackTrace();
 +
            } finally {
 +
                if(con != null) {
 +
                    con.close();
 +
                }
 +
            }
 +
        }
 +
    }
 +
 
 +
Kompileerimiseks
 +
 
 +
$ export CLASSPATH=mysql-connector-java-5.1.12-bin.jar:.
 +
$ javac HelloMySQL.java
 +
 
 +
Käivitamiseks
 +
 
 +
$ java HelloMySQL
 +
 
 +
===SMTP===
 +
 
 +
====Plaintext====
 +
 
 +
Selleks, et saata läbi postirelee välja kirja sobib kasutada JavaMail API't http://java.sun.com/products/javamail/, mis tuleb kopeerida ja lahti pakkida sobivasse kataloogi, nt /opt/javamail. Praktiliselt on vajalik kasutada sealt arhiivist ainult mail.jar teeki.
 +
 
 +
import java.util.*;
 +
import javax.mail.*;
 +
import javax.mail.internet.*;
 +
import javax.activation.*;
 +
 +
// Send a simple, single part, text/plain e-mail
 +
public class Kirjasaatja {
 +
 +
  public static void main(String[] args) {
 +
 +
    String to = "mart@loomaaed.tartu.ee";
 +
    String from = "priit@loomaaed.tartu.ee";
 +
    // meilirelee aadress
 +
    String host = "192.168.1.250";
 +
 +
    Properties props = new Properties();
 +
    props.put("mail.smtp.host", host);
 +
    // debugimise sisselülitamine
 +
    props.put("mail.debug", "false");
 +
    Session session = Session.getInstance(props);
 +
 +
    try {
 +
      Message msg = new MimeMessage(session);
 +
      msg.setFrom(new InternetAddress(from));
 +
      InternetAddress[] address = {new InternetAddress(to)};
 +
      msg.setRecipients(Message.RecipientType.TO, address);
 +
      msg.setSubject("Test kiri");
 +
      msg.setSentDate(new Date());
 +
      msg.setText("See on test kiri. " +
 +
                        "Ja kirja sisu\n");
 +
      Transport.send(msg);
 +
    }
 +
    catch (MessagingException mex) {
 +
      mex.printStackTrace();
 +
    }
 +
  }
 +
}
 +
 
 +
Kompileerimiseks ja kasutamiseks sobib öelda
 +
 
 +
$ export CLASSPATH=/opt/javamail/mail.jar:.
 +
$ javac Kirjasaatja.java
 +
$ java Kirjasaatja
 +
 
 +
===Märkused===
 +
 
 +
* Selleks, et java.sun.com võrk töötaks Debian Squeeze 20100402 seisuga, tuleb öelda, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560044
  
TODO
+
# sysctl -w net.ipv6.bindv6only=0
  
 
===Kasulikud lisamaterjalid===
 
===Kasulikud lisamaterjalid===
36. rida: 283. rida:
 
* http://www.fankhausers.com/postgresql/jdbc/
 
* http://www.fankhausers.com/postgresql/jdbc/
 
* http://en.wikipedia.org/wiki/Jetty_(web_server)
 
* http://en.wikipedia.org/wiki/Jetty_(web_server)
 +
* http://xahlee.org/java-a-day/java.html
 +
* [[:Apache Tomcat]]

Viimane redaktsioon: 14. september 2016, kell 12:33

Sissejuhatus

Siin palas ei tule juttu mitte Tsehhis toodetud mootorrattast vaid ühest keelest.

  • JRE: Java Runtime Environment. Tegemist on java virtuaalmasinaga kus java programmid töötavad. Ühtlasi sisaldab see browseri pluginat ja appleti käivitamist.
  • JDK: Täielik tarkvara arenduskomplekt javale, sisaldades ühtlasi ka jre-d, kompilaarorit ja töövahendeid (näiteks JavaDoc, Java Debugger) selleks, et luua ja kompileerida programme.

CBNux.png

Java paigaldamine

Esiteks on olemas Oracle JDK ja Open JDK

  • Oracle (varasemalt Sun) JDK, suletud koodiga java, koos kommertsiaalse toega oracle enda asjadele.
  • OpenJDK, avatud koodiga java. Oracle poolt vabaks antud osa koodist.

Java kasutamine

Lähtetekst

$ cat HelloWorld.java
public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, World");
  }
}

Kompileerimine, tekib fail HelloWorld.class

$ javac HelloWorld.java

Käivitamine

$ java HelloWorld
Hello, World

Java paketid

$ find . -ls
8212    4 drwxr-xr-x   3 root     root         4096 Apr  8 11:27 .
8214    4 drwxr-xr-x   2 root     root         4096 Apr  8 11:27 ./ee/tartu/loomaaed
8217    4 -rw-r--r--   1 root     root          127 Apr  8 11:24 ./ee/tartu/loomaaed/HelloWorld.java
8219    4 -rw-r--r--   1 root     root          428 Apr  8 11:27 ./ee/tartu/loomaaed/HelloWorld.class

Kompileerimiseks

$ javac ee/tartu/loomaaed/HelloWorld.java 

Käivitamiseks

$ java ee.tartu.loomaaed.HelloWorld
Hello World

Klassid

package ee.tartu.loomaaed;

public class HelloWorld {
  public static void main(String[] args) {
 
    arvutaja arvuti = new arvutaja();
    int summa = arvuti.liitja(4,3);
    int vahe = arvuti.lahutaja(4,3);
    System.out.println(summa);
    System.out.println(vahe);
  }
}

class arvutaja {
  public int liitja(int a, int b) {
    return a + b;
  }

  public int lahutaja(int a, int b) {
    return a - b;
  }
}

kus

  • class arvutaja { ... } - klass, milles on kirjeldatud kaks funktsiooni, ehk õigemini meetodit, liitja ja lahutaja
  • arvutaja arvuti = new arvutaja(); - moodustatakse arvutaja alusel uus objekt nimega arvuti
  • arvuti.liitja(4,3); - kasutatajase objekti arvuti meetodit liitja argumentidega 4 ja 3

Kompileerimine ja kasutamine toimub nagu eelmisel juhul.

Ühendus Oracle andmebaasiga

Nt Oracle andmebaasiga suhtlemiseks on vajalik draiver ojdbc14.jar (v. 10.2) või ojdbc6.jar (v. 11.2)

$ cat HelloOracle.java
import java.sql.*;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.net.*;

public class HelloOracle
    {
        public static void main(String args[]) throws SQLException {
            Connection con = null;
            try {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.64:1521:loom", \
                  "mart", "mardiparool");
                Statement st = con.createStatement();
                ResultSet rs = st.executeQuery("select BANNER from SYS.V_$VERSION");
                while(rs.next()) {
                     System.out.println(rs.getString(1));
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if(con != null) {
                    con.close();
                }
            }
        }
    }

kus

  • loom - oracle baasi SID

Kompileerimiseks

$ export CLASSPATH=ojdbc14.jar:.
$ javac HelloOracle.java

ja käivitamiseks

$ java HelloOracle

Kasulikud lisamaterjalid

Ühendus PostgreSQL andmebaasiga

$ cat HelloPostgresql.java
import java.sql.*;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.net.*;

public class HelloPostgresql
     {
         public static void main(String args[]) throws SQLException {
             Connection con = null;
             try {
                 Class.forName("org.postgresql.Driver");
                 con = DriverManager.getConnection("jdbc:postgresql://127.0.0.1/test", "priit", "parool");
                 Statement st = con.createStatement();
                 ResultSet rs = st.executeQuery("SELECT * FROM priit.inimene");
                 while(rs.next()) {
                      System.out.println(rs.getString("nimi"));
                 }
             } catch (Exception e) {
                 e.printStackTrace();
             } finally {
                 if(con != null) {
                     con.close();
                 }
             }
         }
     }

Kompileerimiseks

$ export CLASSPATH=postgresql-8.4-701.jdbc3.jar:.
$ javac HelloPostgresql.java

Käivitamiseks

$ java HelloPostgresql

Ühendus MySQL andmebaasiga

Kopeerida draiver aadressilt http://dev.mysql.com/downloads/connector/j/

$ tar zxf mysql-connector-java-5.1.12.tar.gz

Näiteks selline programm esitab andmebaasi test tabeli inimene tulba nimi väärtused

$ cat HelloMySQL.java
import java.sql.*;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.net.*;

public class HelloMySQL
    {
        public static void main(String args[]) throws SQLException {
            Connection con = null;
            try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/baasinimi?" + \
                  "user=kasutajanimi& password=parool");
                Statement st = con.createStatement();
                ResultSet rs = st.executeQuery("SELECT * FROM inimene");
                while(rs.next()) {
                     System.out.println(rs.getString("nimi"));
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if(con != null) {
                    con.close();
                }
            }
        }
    }

Kompileerimiseks

$ export CLASSPATH=mysql-connector-java-5.1.12-bin.jar:.
$ javac HelloMySQL.java

Käivitamiseks

$ java HelloMySQL

SMTP

Plaintext

Selleks, et saata läbi postirelee välja kirja sobib kasutada JavaMail API't http://java.sun.com/products/javamail/, mis tuleb kopeerida ja lahti pakkida sobivasse kataloogi, nt /opt/javamail. Praktiliselt on vajalik kasutada sealt arhiivist ainult mail.jar teeki.

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

// Send a simple, single part, text/plain e-mail
public class Kirjasaatja {

  public static void main(String[] args) {

    String to = "mart@loomaaed.tartu.ee";
    String from = "priit@loomaaed.tartu.ee";
    // meilirelee aadress
    String host = "192.168.1.250";

    Properties props = new Properties();
    props.put("mail.smtp.host", host);
    // debugimise sisselülitamine
    props.put("mail.debug", "false");
    Session session = Session.getInstance(props);

    try {
      Message msg = new MimeMessage(session);
      msg.setFrom(new InternetAddress(from));
      InternetAddress[] address = {new InternetAddress(to)};
      msg.setRecipients(Message.RecipientType.TO, address);
      msg.setSubject("Test kiri");
      msg.setSentDate(new Date());
      msg.setText("See on test kiri. " +
                       "Ja kirja sisu\n");
      Transport.send(msg);
    }
    catch (MessagingException mex) {
      mex.printStackTrace();
    }
  }
}

Kompileerimiseks ja kasutamiseks sobib öelda

$ export CLASSPATH=/opt/javamail/mail.jar:.
$ javac Kirjasaatja.java
$ java Kirjasaatja

Märkused

# sysctl -w net.ipv6.bindv6only=0

Kasulikud lisamaterjalid