<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[jar-Datei mit icon]]></title><description><![CDATA[<p>Hallo!</p>
<p>Bitte wegen dem Titel nichts falsches denken, ich bin hier schon im richtigen Forum.<br />
Also erstmal die kurze Vorgeschichte: ich hab in java ein programm geschrieben, des inne .jar gepackt. Dieser jar würd ich eben gerne ein icon geben - aber das ist meines Wissens nicht möglich (zumindest nicht spezifisch für eine Datei).</p>
<p>Und jetzt kommts was ich im Winapi board will:<br />
Hab mir überlegt ich könnte doch ne Art wrapper schreiben, der des binary von der jar-Datei nimmt, und in eine .exe speichert, mit dem richtigen Icon dazu. Und diese exe soll dann die jvm ausfindig machen und die gespeicherte jar-Datei damit ausführen.</p>
<p>Hat da generell jemand Vorschläge wie ich das am besten machen kann? Vor allem auch, dass ich das Icon dynamisch der &quot;generierten&quot; exe zuweisen kann?</p>
<p>Und wie führe ich die jar-Datei mit der jvm aus? muss ich sie dazu an einen temporären Ort entpacken um sie mit &quot;java -jar ...&quot; auszuführen oder kann ich das auch im cache machen?</p>
<p>Danke für die Antworten und hilfreiche Ideen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>mfg jghj</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160780/jar-datei-mit-icon</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 15:46:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160780.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 29 Sep 2006 09:00:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to jar-Datei mit icon on Fri, 29 Sep 2006 09:00:01 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Bitte wegen dem Titel nichts falsches denken, ich bin hier schon im richtigen Forum.<br />
Also erstmal die kurze Vorgeschichte: ich hab in java ein programm geschrieben, des inne .jar gepackt. Dieser jar würd ich eben gerne ein icon geben - aber das ist meines Wissens nicht möglich (zumindest nicht spezifisch für eine Datei).</p>
<p>Und jetzt kommts was ich im Winapi board will:<br />
Hab mir überlegt ich könnte doch ne Art wrapper schreiben, der des binary von der jar-Datei nimmt, und in eine .exe speichert, mit dem richtigen Icon dazu. Und diese exe soll dann die jvm ausfindig machen und die gespeicherte jar-Datei damit ausführen.</p>
<p>Hat da generell jemand Vorschläge wie ich das am besten machen kann? Vor allem auch, dass ich das Icon dynamisch der &quot;generierten&quot; exe zuweisen kann?</p>
<p>Und wie führe ich die jar-Datei mit der jvm aus? muss ich sie dazu an einen temporären Ort entpacken um sie mit &quot;java -jar ...&quot; auszuführen oder kann ich das auch im cache machen?</p>
<p>Danke für die Antworten und hilfreiche Ideen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>mfg jghj</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1146407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1146407</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Fri, 29 Sep 2006 09:00:01 GMT</pubDate></item><item><title><![CDATA[Reply to jar-Datei mit icon on Fri, 29 Sep 2006 09:31:43 GMT]]></title><description><![CDATA[<p>Stichwort: JNI = Java Native Interface</p>
<p>Aber nur damit die Datei ein Icon hat, würde ich den Aufwand nicht betreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1146431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1146431</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 29 Sep 2006 09:31:43 GMT</pubDate></item><item><title><![CDATA[Reply to jar-Datei mit icon on Fri, 29 Sep 2006 09:58:09 GMT]]></title><description><![CDATA[<p>JNI kenn ich. Aber ich dachte ich kann nur mit java darauf zugreifen und nicht umgedreht.<br />
Wenn dem nicht so ist, kann ich dann mit meinem Programm einfach die main() Methode aus meinem Java aufrufen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1146447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1146447</guid><dc:creator><![CDATA[jghj]]></dc:creator><pubDate>Fri, 29 Sep 2006 09:58:09 GMT</pubDate></item><item><title><![CDATA[Reply to jar-Datei mit icon on Fri, 29 Sep 2006 13:07:38 GMT]]></title><description><![CDATA[<p>Es geht auch umgekehrt. Ich arbeite mich da gerade ein:</p>
<pre><code class="language-cpp">#include &quot;jni.h&quot;
#include &lt;tchar.h&gt;
#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
#include &lt;shlwapi.h&gt;
#include &quot;main.h&quot;
#include &quot;MpuTools.h&quot;

int main() {
	JavaVM *jvm = NULL;
	JavaVMInitArgs vm_args;
	JavaVMOption options[1];
	JNIEnv *env = NULL;

	// Optionen und JVM Argumente setzen
	options[0].optionString = &quot;-Djava.class.path=..\\JavaDemo&quot;;
	memset(&amp;vm_args, 0, sizeof(vm_args));
	vm_args.version = JNI_VERSION_1_4;
	vm_args.options = options;
	vm_args.nOptions = 1;
	vm_args.ignoreUnrecognized = JNI_FALSE; 

	// DLL laden
	HINSTANCE hLib = LoadLibrary(DLLPATH);
	if (hLib == NULL) {
		LPTSTR pszBuf;
  		pszBuf = SysErrorMessage(0, NULL, 0);
  		_tprintf(_T(&quot;%s\n&quot;), pszBuf);
  		LocalFree(pszBuf);
  		return -1;
	}
	else {
		_tprintf(_T(&quot;DLL %s geladen. (0x%x)\n&quot;), PathFindFileName(DLLPATH), (int)hLib);
	}

	// Prozedureinsprungspunkt holen
	JNI_CREATEJAVAVM jni_createjavavm = (JNI_CREATEJAVAVM) GetProcAddress(hLib, DLL_JNI_CREATE_JVM);
	if (jni_createjavavm == NULL) {
		LPTSTR pszBuf;
  		pszBuf = SysErrorMessage(0, NULL, 0);
  		_tprintf(_T(&quot;%s\n&quot;), pszBuf);
  		LocalFree(pszBuf);
  		getchar();
  		return -1;	
	}
	else {
		_tprintf(_T(&quot;Prozedureinsprungspunkt gefunden. (0x%x)\n\n&quot;), (int)jni_createjavavm);
	}

	// JVM starten
	int status = jni_createjavavm(&amp;jvm, (void **)&amp;env, &amp;vm_args);
	    if (status != JNI_OK) {
    	switch (status) {
    		case JNI_ERR:
				printf(&quot;Error: %d\nunknown error\n&quot;, status);
				break;
			case JNI_EDETACHED:
				printf(&quot;Error: %d\nthread detached from the VM\n&quot;, status);
				break;
			case JNI_EVERSION:
				printf(&quot;Error: %d\nJNI version error\n&quot;, status);
				break;
			case JNI_ENOMEM:
				printf(&quot;Error %d:\nnot enough memory\n&quot;, status);
				break;
			case JNI_EEXIST:
				printf(&quot;Error %d:\nVM already created\n&quot;, status);
				break;
			case JNI_EINVAL:
				printf(&quot;Error %d\ninvalid arguments\n&quot;, status);
				break;
    	} 	
    	return -1;
    }
    else {
    	_tprintf(_T(&quot;JVM created successfully\n\n&quot;));
    }

    // Klasse der aufzurufenden Methode suchen
    jclass cls = env-&gt;FindClass(&quot;HelloWorld&quot;);
    if (cls == 0) {
    	_tprintf(_T(&quot;Klasse 'HelloWorld' nicht gefunden\n&quot;));
    	jvm-&gt;DestroyJavaVM();
    	return -1;	
    }
    else {
    	_tprintf(_T(&quot;Klasse 'HelloWorld' gefunden\n&quot;));
    }
    // Konstruktor aufrufen
    jmethodID mid = env-&gt;GetMethodID(cls, &quot;&lt;init&gt;&quot;, &quot;()V&quot;);
    if (mid == 0) {
    	_tprintf(_T(&quot;Konstruktor nicht gefunden.\n&quot;));
    	jvm-&gt;DestroyJavaVM();
    	return -1;
    }
    else {
    	_tprintf(_T(&quot;Konstruktor gefunden.\n&quot;));
    }
    // Objektinstanz erzeugen
    jobject instance = env-&gt;NewObject(cls, mid);
    if (instance == 0) {
    	_tprintf(_T(&quot;Instanz konnte nicht erzeugt werden.\n&quot;));
    	jvm-&gt;DestroyJavaVM();
    	return -1;
    }
    else {
    	_tprintf(_T(&quot;Instanz erzeugt. (0x%x)\n\n&quot;), (int)instance);
    }

    // Java Methode IntTest
    mid = env-&gt;GetMethodID(cls, &quot;intTest&quot;, &quot;()I&quot;);
    if (mid == 0) {
    	_tprintf(_T(&quot;Methode 'iniTest' nicht gefunden.\n&quot;));
    	jvm-&gt;DestroyJavaVM();
    	return -1;
    }
    else {
    	_tprintf(_T(&quot;Methode 'iniTest' gefunden.\n&quot;));
    }	
	int res = env-&gt;CallIntMethod(instance, mid);
	_tprintf(_T(&quot;Rückgabewert der Methode 'initTest': %i\n\n&quot;), res);

	// Java Methode intTest2
	mid = env-&gt;GetMethodID(cls, &quot;intTest2&quot;, &quot;(I)I&quot;);
    if (mid == 0) {
    	_tprintf(_T(&quot;Methode 'iniTest2' nicht gefunden.\n&quot;));
    	jvm-&gt;DestroyJavaVM();
    	return -1;
    }
    else {
    	_tprintf(_T(&quot;Methode 'iniTest2' gefunden.\n&quot;));
    }	
	res = env-&gt;CallIntMethod(instance, mid, 7);
	_tprintf(_T(&quot;Rückgabewert der Methode 'initTest2': %i\n\n&quot;), res);

	// Java Methode strTest
	mid = env-&gt;GetMethodID(cls, &quot;strTest&quot;, &quot;()Ljava/lang/String;&quot;);
	if (mid == 0) {
    	_tprintf(_T(&quot;Methode 'strTest' nicht gefunden.\n&quot;));
    	jvm-&gt;DestroyJavaVM();
    	return -1;
    }
    else {
    	_tprintf(_T(&quot;Methode 'strTest' gefunden.\n&quot;));
    }
    jstring js = (jstring)env-&gt;CallObjectMethod(instance, mid);
    const TCHAR* c_str = env-&gt;GetStringUTFChars(js, 0);
    _tprintf(_T(&quot;Rückgabewert der Methode 'strTest': %s\n\n&quot;), c_str);	

	// Programmende
	_tprintf(_T(&quot;The end .. to be continued...&quot;));

	jvm-&gt;DestroyJavaVM();
	return 0;	
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1146563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1146563</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 29 Sep 2006 13:07:38 GMT</pubDate></item></channel></rss>