pojavlauncher怎么设置java参数

pojavlauncher怎么设置java参数,第1张

点击设置-参数设置进行设置。

PojavLauncher启动器最新版本是一款功能十分强大的手机版Java启动器应用,使用这款软件可以启动我的世界的所有版本,支持服务器自定义ip,能够修改游戏画质好,能够自定义游戏参数

解压后把所有文件放到有自开发带main的主class的jar包所在的目录下 ,修改launcher目录下launcherproperties配置文件 main代表Main-Class 路径,如:testTest classpath指定Class-Path路径,可以多个。

java启动参数共分为三类;

其一是 标准参数 (-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;

其二是 非标准参数 (-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;

其三是 非Stable参数 (-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;

1设置环境变量JAVA_OPTS

2Windows下,在/bin/catalinabat,Unix下,在/bin/catalinash的前面,增加 JAVA_OPTS=’-Xms256m -Xmx512m’

Tomcat 的启动参数位于安装目录 ${TOMCAT_HOME}/bin目录下, Linux *** 作系统就是 catalinash 文件。JAVA_OPTS,就是用来设置 JVM 相关运行参数的变量,还可以在 CATALINA_OPTS 变量中设置。关于这 2 个变量,还是多少有些区别的:

JAVA_OPTS:用于当 Java 运行时选项“start”、“stop”或“run”命令执行。

CATALINA_OPTS:用于当 Java 运行时选项“start”或“run”命令执行。

为什么有两个不同的变量?它们之间都有什么区别呢?

首先,在启动 Tomcat 时,任何指定变量的传递方式都是相同的,可以传递到执行“start”或“run”命令中,但只有设定在 JAVA_OPTS 变量里的参数被传递到“stop”命令中。对于 Tomcat 运行过程,可能没什么区别,影响的是结束程序,而不是启动程序。

第二个区别是更微妙,其他应用程序也可以使用 JAVA_OPTS 变量,但只有在 Tomcat 中使用 CATALINA_OPTS 变量。如果你设置环境变量为只使用 Tomcat,最好你会建议使用 CATALINA_OPTS 变量,而如果你设置环境变量使用其它的 Java 应用程序,例如 JBoss,你应该把你的设置放在JAVA_OPTS 变量中。

我在本地配置的:

其他暂时没用到的:

Xms与Xmx配置相同的值,为了能够在GC后不需要重新分隔计算堆区的大小而浪费资源。

JVM系列四:生产环境参数实例及分析生产环境实例增加中

jvm的GC日志分析

JVM常用参数配置

深入了解JVM

JVM参数与实际环境中的优化配置实践

JVM启动参数大全

Java服务GC参数调优案例

关键业务系统的JVM参数推荐(2018仲夏版)

成为Java GC专家(5)—Java性能调优原则

给出一个windows下dll的实例。linux下a的静态库只是头文件和编译有所不同,另外需要将编译后的动态库文件放入/usr/lib下,使用ldconfig载入。

一 先制作一个系统中有的DLL文件(cpp给出的sdk接口)

既然是测试我们就把我们这个dll叫做testDll吧,为了简单其间,我只写一个add方法,就是简单的2个数字相加,对于真正的开发中我们肯定会遇到其他类型,java到c/cpp中类型需要转换,具体类型转换对应关系g一下就能得到,我也不在列举。c/cpp中一个class一般包含2个文件,一个头文件定义(h),一个文件主体(c/cpp)。啰嗦了这么多还是直接动手吧,先在vs2008中建立一个工程(当然你也可以直接编写不用这些IDE工具,gcc g++的命令自己g。下同,不在注释不在废话),选取win32工程

键入工程名字testDll,点击next选取DLL,然后点击完成

打开我们的testdllcpp,添加进我们的add方法

C++代码

1int add(int a,int b){

2 return a+b;

3}

int add(int a,int b){

return a+b;

}

注意到文件列表里并没有testDllh,因为我们要给出调用者一个接口,如果不给头文件,人家就没办法调用,所以我们就必须添加一个头文件testDllh。

C++代码

1#ifdef TEST_DLL

2#define TEST_API __declspec(dllexport)

3#else

4#define TEST_API __declspec(dllimport)

5#endif

6

7/ Set up for C function definitions, even when using C++ /

8#ifdef __cplusplus

9extern "C" {

10#endif

11

12TEST_API int add(int,int);

13

14/ Ends C function definitions when using C++ /

15#ifdef __cplusplus

16}

17#endif

#ifdef TEST_DLL

#define TEST_API __declspec(dllexport)

#else

#define TEST_API __declspec(dllimport)

#endif

/ Set up for C function definitions, even when using C++ /

#ifdef __cplusplus

extern "C" {

#endif

TEST_API int add(int,int);

/ Ends C function definitions when using C++ /

#ifdef __cplusplus

}

#endif

在这个头文件中我们把我们的add方法给定义了进去。注意到testdllcpp中#include "stdafxh",所以我们就把这个testDllh include进stdafxh里面。

按道理说我们的这个dll已经完成了,但是一般c/cpp给接口SDK的时候大都给h和lib,为了一步生成dll和lib,我们添加进一个testDlldef,有了这个文件就可以一步生成dll和lib。在source file里右键add new item ,选择Module-Definition File

键入testDll,OK了,我们可以直接build了。生成testDlldll和testDlllib。

把testDlldll扔到system32目录里等待我们高大威猛的java jni调用。

二 JNI

21 编写java文件

为了显示我们的与众相同,我们就把我们的这个java文件命名为Demojava顺便直接带上包名

,因为我们知道人家给我们的接口里有个add方法,所以我们就直接来个调用吧。

Java代码

1package comtestJnitestDemo;

2

3public class Demo {

4 static

5 {

6 //Systemoutprintln(SystemgetProperty("javalibrarypath"));

7 SystemloadLibrary("testDll");

8 SystemloadLibrary("jniDll");

9 }

10 public native static int add(int a,int b);

11

12}

package comtestJnitestDemo;

public class Demo {

static

{

//Systemoutprintln(SystemgetProperty("javalibrarypath"));

SystemloadLibrary("testDll");

SystemloadLibrary("jniDll");

}

public native static int add(int a,int b);

}

demojava代码暂时如此,我们把将要生成的jni的dll叫做jniDll,有童鞋讲,我不想用你这个烂名字jniDll多俗啊,没关系,你可以换,随你换,生成文件后你再换也可以,现在换也可以。

22 生成h头文件

javah命令,不多讲。生成的文件com_testJni_testDemo_Demoh这个文件的命名规则我就不多讲了,一目了然。

C++代码

1/ DO NOT EDIT THIS FILE - it is machine generated /

2#include <jnih>

3/ Header for class com_testJni_testDemo_Demo /

4

5#ifndef _Included_com_testJni_testDemo_Demo

6#define _Included_com_testJni_testDemo_Demo

7#ifdef __cplusplus

8extern "C" {

9#endif

10/

11 Class: com_testJni_testDemo_Demo

12 Method: add

13 Signature: (II)I

14 /

15JNIEXPORT jint JNICALL Java_com_testJni_testDemo_Demo_add

16 (JNIEnv , jclass, jint, jint);

17

18#ifdef __cplusplus

19}

20#endif

21#endif

/ DO NOT EDIT THIS FILE - it is machine generated /

#include <jnih>

/ Header for class com_testJni_testDemo_Demo /

#ifndef _Included_com_testJni_testDemo_Demo

#define _Included_com_testJni_testDemo_Demo

#ifdef __cplusplus

extern "C" {

#endif

/

Class: com_testJni_testDemo_Demo

Method: add

Signature: (II)I

/

JNIEXPORT jint JNICALL Java_com_testJni_testDemo_Demo_add

(JNIEnv , jclass, jint, jint);

#ifdef __cplusplus

}

#endif

#endif

23 用c/cpp实现这个头文件

c/cpp中已经实现了这个add方法,我们只需要调用就可以啦。所以直接vs2008中建立一个dll工程,工程名我们就叫jniDll,具体过程不再多讲,方法同上面testDll的建立一样。在这个工程里kimmking把需要引用的包、文件等已经讲的很清楚了。打开jniDllcpp,添加下面代码

C++代码

1JNIEXPORT jint JNICALL Java_com_testJni_testDemo_Demo_add

2(JNIEnv env,jclass jobject,jint a,jint b){

3

4 return add(a,b);

5}

JNIEXPORT jint JNICALL Java_com_testJni_testDemo_Demo_add

(JNIEnv env,jclass jobject,jint a,jint b){

return add(a,b);

}因为int对应的类型就刚好是jint,所以就不需要转换,其他需要转换的类型自己g对应关系转换,注意释放。

这个工程里我们还需要打开 stdafxh添加

C++代码

1#include <jnih>

2

3#include "testDllh"

4#include "com_testJni_testDemo_Demoh"

#include <jnih>

#include "testDllh"

#include "com_testJni_testDemo_Demoh"

在编译这个jniDll工程的时候需要引入testDllh,com_testJni_testDemo_Demoh,另外添加testDlllib这个依赖。

好了做好这些后,build下,生成了我们期待已久的jniDlldll,把这个dll同样扔到system32下。

三 测试

本人特懒,不想写多余的class,所以直接修改Demojava 这也是刚才为什么讲暂时如此的原因

Java代码

1package comtestJnitestDemo;

2

3public class Demo {

4 static

5 {

6 //Systemoutprintln(SystemgetProperty("javalibrarypath"));

7 SystemloadLibrary("testDll");

8 SystemloadLibrary("jniDll");

9 }

10 public native static int add(int a,int b);

11 public static void main(String[] args) {

12 Systemoutprintln(add(7,2));

13 }

14}

package comtestJnitestDemo;

public class Demo {

static

{

//Systemoutprintln(SystemgetProperty("javalibrarypath"));

SystemloadLibrary("testDll");

SystemloadLibrary("jniDll");

}

public native static int add(int a,int b);

public static void main(String[] args) {

Systemoutprintln(add(7,2));

}

}

四 最后补充

如果系统已经加载过c/cpp的dll,我们就不用再SystemloadLibrary("testDll")了,加载一遍就可以了,因为我们刚才写的testDll系统没有加载,所以我就加载了一下。对于多个dll可以写多个SystemloadLibrary去加载,修改static{}里面的内容不需要重新生成dll,除非你多加了一个调用方法,如果你看清楚规则,就不用javah命令就可以直接编写头文件,用javah太麻烦了。

假设这JSP叫 indexjsp,自己提交给自己

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<html>

<body>

<form id="test" method="post" action="indexjsp">

<select id="code"  name="plugin">

<option value="1cn">cn</option>

<option value="2us">us</option>

<option value="3en">en</option>

</select>

<input type="submit" value="提交">

<br>

<%outprintln(requestgetParameter("plugin")); %>

</form>

</body>

</html>

请采纳

如果用命令的方式运行java程序,在运行命令后面添加参数值即可,例如:

普通java运行命令:java helloworld

加参数运行命令:java helloworld 张三

普通java运行命令:java -jar testjar

加参数运行命令:java -jar testjar 张三

张三就是第一个参数,第二个参数依次挂在后面即可,在mian函数的args参数中可以获取到的。

如果是eclipse这样的开发环境,应该可以找到配置程序启动参数的地方。例如:

elipse配置方式为:Run As-->Run Configurations->Arguments->Program arguments 中输入 参数值即可,空格隔开。

其他开发工具类似。

提示写的很清楚了,你的代码里有内存溢出,可能是某个request没有返回,或者是资源没有释放。检查一下你的代码,或者设置tomcat的contextxml,将unloadDelay设成2000或者5000

用java命令查看。

用java -option进行修改参数。

还有tomcat,eclipse启动时通过配置文件加载的。

详细如下:

安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JRE。如果只是运行Java程序,则JRE已足够;而JDK则只有开发人员才用到。

一、配置JVM内存

1配置JVM内存的参数

-XmxJavaHeap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-XmsJavaHeap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

2如何配置JVM内存分配:

(1)当在命令提示符下启动并使用JVM时(只对当前运行的类生效)

java-Xmx128m-Xms64m-Xmn32m-Xss16mTest

(2)当在集成开发环境下(如eclipse)启动并使用JVM时:

第一种设置方法:

在eclipse根目录下打开eclipseini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):

-vmargs-Xms40m-Xmx256m-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,,另外,eclipseini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。

此处设置的参数值可以通过以下配置在开发工具的状态栏显示:

在eclipse根目录下创建文件options,文件内容为:orgeclipseui/perf/showHeapStatus=true

修改eclipse根目录下的eclipseini文件,在开头处添加如下内容:

-debugoptions-vmjavawexe重新启动eclipse,就可以看到下方状态条多了JVM信息。

第二种设置方法:

打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效)

编辑当前使用的JRE,在缺省VM参数中输入:-Xmx128m-Xms64m-Xmn32m-Xss16m

第三种设置方法:

打开eclipse-运行-运行-Java应用程序(只对所设置的java类生效)

选定需设置内存分配的类-自变量,在VM自变量中输入:-Xmx128m-Xms64m-Xmn32m-Xss16m

注:如果在同一开发环境中同时进行了第二种和第三种设置,则第二种设置生效,第三种设置无效,如:

开发环境的设置为:-Xmx256m,而类Test的设置为:-Xmx128m-Xms64m,则运行Test时生效的设置为:

-Xmx256m-Xms64m

(3)当在服务器环境下(如Tomcat)启动并使用JVM时(对当前服务器环境下所以Java程序生效):

a设置环境变量:

变量名:CATALINA_OPTS

变量值:-Xmx128m-Xms64m-Xmn32m-Xss16m

b打开Tomcat根目录下的bin文件夹,编辑catalinabat,将其中的%CATALINA_OPTS%(共有四处)替换为:-Xmx128m-Xms64m-Xmn32m-Xss16m

二、查看配置JVM内存信息

RuntimegetRuntime()maxMemory();//最大可用内存,对应-Xmx

RuntimegetRuntime()freeMemory();//当前JVM空闲内存

RuntimegetRuntime()totalMemory();//当前JVM占用的内存总数,其值相当于当前JVM已使用的内存及freeMemory()的总和

关于maxMemory(),freeMemory()和totalMemory():

maxMemory()为JVM的最大可用内存,可通过-Xmx设置,默认值为物理内存的1/4,设值不能高于计算机物理内存;

totalMemory()为当前JVM占用的内存总数,其值相当于当前JVM已使用的内存及freeMemory()的总和,会随着JVM使用内存的增加而增加;

freeMemory()为当前JVM空闲内存,因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,而JVM实际可用内存并不等于freeMemory(),而应该等于maxMemory()-totalMemory()+freeMemory()。及其配置JVM内存分配。

Eclipse启动参数配置

eclipseexe -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M -Xms64M -Xmx256M

将工作空间位置设置为在当前工作目录内

在此方案中,工作空间位置将是当前工作目录中称为workspace的目录。

实现此目的最容易的方法可能是使用下列步骤来创建快捷方式:

浏览至 Windows 资源管理器中的 eclipseexe 并使用右键拖动来创建 eclipseexe 的快捷方式。

编辑快捷方式的属性,以使启动位置:字段标识工作空间位置的父目录(例如,c:/users/robert)。

关闭属性对话框并双击快捷方式(如果提供的目录为c:/users/robert,则工作空间位置将为c:/users/robert/workspace)。

当然,您也可以使用命令提示符(通过将目录切换为工作空间父目录然后运行 eclipseexe)来获得同样的效果。

使用 -data 设置工作空间的特定位置

要使用-data命令行自变量,只要将-datayour_workspace_location(例如,-data c:/users/robert/myworkspace)添加至快捷方式属性中的目标字段或显式地将它包括在命令行上。

使用 -vm 设置 java VM

建议显式指定在运行 Eclipse 时要使用哪个 Java VM。使用-vm命令行自变量(例如,-vm c:/jre/bin/javawexe)可以实现此目的。如果不使用-vm,则 Eclipse 将使用在 O/S 路径上找到的一个 Java VM。当安装其它产品时,它们可更改您的路径,导致在下一次启动 Eclipse 时使用另一 Java VM。

运行 Eclipse 中的高级主题

Eclipse 可执行文件及平台本身提供了人们感兴趣的开发或调试 Eclipse 各部件的许多执行选项。这是常用选项列表,有关完整列表,请参阅 Platform Plug-in Developer Guide 中的 Eclipse 运行时选项页面。运行 Eclipse 可执行文件的一般格式是:

eclipse [platform options] [-vmargs [Java VM arguments]]

Eclipse 启动参数

命令描述

原因

-arch architecture

定义 Eclipse 平台在其上运行的处理器体系结构。Eclipse 平台通常使用 Javaosarch属性的常用值来计算最佳设置。如果在此处指定该项,则这是 Eclipse 平台使用的值。此处指定的值可作为 BootLoadergetOSArch() 用于插件。示例值有:“x86”、“sparc”、“PA-RISC”和“ppc”。

20

-application applicationId

要运行的应用程序。应用程序由向 orgeclipsecoreruntimeapplications 扩展点提供扩展的插件来声明。通常不需要此自变量。如果指定了此项,则该值会覆盖配置提供的值。如果不指定此项,则会运行“Eclipse 工作台”。

10

-configuration configurationFileURL

Eclipse 平台配置文件的位置,表示为 URL。配置文件确定 Eclipse 平台、可用插件集和主要功能部件的位置。注意,不允许使用相对 URL。当安装或更新 Eclipse 平台时配置文件被写至此位置。

20

-consolelog

将 Eclipse 平台的错误日志镜像到用来运行 Eclipse 的控制台。与-debug组合时很方便使用。

10

-data workspacePath

要运行 Eclipse 平台的工作空间的路径。工作空间位置也是项目的缺省位置。相对于从中启动 eclipse 的目录来解释相对路径。

10

-debug [optionsFile]

将平台置于调试方式,并从给定位置处的文件装入调试选项(如果指定的话)。此文件指示哪些调试点可用于插件以及是否已启用它们。如果未给出文件位置,则平台在启动 eclipse 的目录中查找称为“options”的文件。URL 和文件系统路径都可作为文件位置。

以上就是关于pojavlauncher怎么设置java参数全部的内容,包括:pojavlauncher怎么设置java参数、CMS GC启动参数优化配置、java 如何调用一个已经存在的静态库,并输入和获取参数! 例如:静态库中已经存在函数 ret=ys_tpcall(aa);等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9726402.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存