Export Runnable Jar - javax.com repack (Eclipse)

Export Runnable Jar - javax.com repack (Eclipse)
2013-01-05T10:21:12+01:00
2013-01-08T15:34:29+01:00
2022-10-15T22:31:32+02:00
edfromhadria
Sziasztok!

Az alábbi példaprogram az csatolt zippet (itt letölthető még: http://llk.media.mit.edu/projects/picdev/software/javaxcomm.zip) javax.comm -ot használja.

Kód:
package jctest; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Enumeration; import javax.comm.CommPortIdentifier; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; @SuppressWarnings("serial") public class JCtest extends JFrame implements ActionListener { Container cp = getContentPane(); JPanel pnWest, pnCenter; JButton btGetport; JLabel lbCenter; JCtest() { setTitle("Nyomtató konfiguráció"); setBounds(100, 50, 300, 100); setResizable(false); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); pnWest = new JPanel(); pnWest.setLayout(new GridLayout(3, 1, 2, 5)); pnWest.add(btGetport = new JButton("Portok")); cp.add(pnWest, "West"); pnCenter = new JPanel(); pnCenter.setLayout(new GridLayout(3, 2, 2, 5)); pnCenter.add(lbCenter = new JLabel("")); lbCenter.setText(".."); cp.add(pnCenter, "Center"); btGetport.addActionListener(this); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource().equals(btGetport)) { Enumeration<?> port_list = CommPortIdentifier.getPortIdentifiers(); StringBuffer text = new StringBuffer(); while (port_list.hasMoreElements()) { CommPortIdentifier port_id = (CommPortIdentifier) port_list .nextElement(); if (port_id.getPortType() == CommPortIdentifier.PORT_SERIAL) text.append("Serial port: " + port_id.getName()); } lbCenter.setText(text.toString()); } } public static void main(String[] args) { new JCtest(); } }

Úgy adtam a projekthez a javax.comm-ot hogy a ..workspace\JCtest -be bemásoltam a zipben található három fájl-t (comm.jar,javax.comm.properties,win32com.dll), majd az Eclipse-n belül a projekt->properties->java build path->add external jar.. s kitallóztam.

Ez a kód működik az IDEn belül.

Szeretném exportálni viszont ha a runnable jar-t után az Extract req lib into JAR -t választom akkor a következő üzenet fogad:
"Please review the licenses associated with libraries you wish to reference to make sure you are able to repack them using this app.."
Legenerálja a jar file-t, de ugye nem működik a program, azaz elindul de a gomb hatására nem történik semmi.

Azt akarom hogy a program ugye más gépen is fusson, tehát hogyan oldható meg a fent vázolt probléma?

A válaszokat előre is köszönöm!

Üdvözlettel:
ed
Mutasd a teljes hozzászólást!
Csatolt állomány
Sziasztok!

Megoldás hiányában annyit tudtam kitalálni, hogy írok egy batch fájlt.

@ECHO OFF
ECHO Udv!
COPY .\a\comm.jar C:\Program Files\Java\jre7\lib\ext
COPY .\a\javax.comm.properties C:\Program Files\Java\jre7\lib
COPY .\a\win32com.dll C:\Program Files\Java\jre7\bin
PAUSE
JAVA -jar .\a\program.jar
ECHO.
ECHO Kilepeshez nyomjon meg egy billentyut . . .
PAUSE>null

Még mindig várom a szebb megoldásokat.
Mutasd a teljes hozzászólást!

  • Válassz olyan módot, ami a comm-os jart nem akarja újracsomagolni. Gyakorlatilag a te jarod és a comm-os jar egymás mellett lesz, a Java meg feloldja classpathról az osztályait.
    Mutasd a teljes hozzászólást!
  • Az Eclipse-ben a "Copy req libs into a sub-folder next to the generated JAR" lehetőség egy JCtest_lib mappában elhelyezi a comm.jar fájlt. De akkor sem működik a gomb, még ha a mappába hozzámásolom a másik két fájlt(property, dll).
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Megoldás hiányában annyit tudtam kitalálni, hogy írok egy batch fájlt.

    @ECHO OFF
    ECHO Udv!
    COPY .\a\comm.jar C:\Program Files\Java\jre7\lib\ext
    COPY .\a\javax.comm.properties C:\Program Files\Java\jre7\lib
    COPY .\a\win32com.dll C:\Program Files\Java\jre7\bin
    PAUSE
    JAVA -jar .\a\program.jar
    ECHO.
    ECHO Kilepeshez nyomjon meg egy billentyut . . .
    PAUSE>null

    Még mindig várom a szebb megoldásokat.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd