精华内容
下载资源
问答
  • java程序需求

    2013-12-14 19:40:45
    java程序需求 做一个java读取数据库值 然后写入FileList.ini
  • 聘请的Java开发人员利用Java程序设计需求 通用Java是便携式的编程语言;专家Java开发人员可以使用它为Web应用程序开发以及移动应用程序开发。的Java的平台无关性的特点允许程序电脑以及手机上执行。这个惊人的技术的...
    聘请的Java开发人员利用Java程序设计需求   通用Java是便携式的编程语言;专家Java开发人员可以使用它为Web应用程序开发以及移动应用程序开发。的Java的平台无关性的特点允许程序电脑以及手机上执行。这个惊人的技术的双重效用使得它在互联网上的流行,以及在移动通信行业的发展内置的移动应用。为有效Java编程,可以从任何与知名专业网站开发公司聘请Java程序员。那么,开发商雇佣的概念已成为普遍的,毫无疑问,聘请Java程序员是一个富有成果的协议,任何在线商人为强大的Web应用程序的开发。   Java开发人员在世界各地声称Java的各种好处,如它的设计是非常有建设性的方式为Java程序员。
     Java的自动突出显示为程序员通知的常见错误。辉煌的API帮助Java程序员开发Web应用程序很容易,并减少了编程和测试过程的时间。看对Java技术的角度揭示了许多优势,如Java程序自动加载的类运行的应用程序,一个范围广泛的工具可用,可以合并为高品质的成果在应用程序的开发。对于基于Java的应用程序的开发,任何精通Java开发人员可以轻松地使用框架提供了一个广泛的数字。 Java编程所有这些动态特性是,如果任何一家公司服务的Java开发人员开发Java应用程序的使用,在网上做生意可以实现的。   聘请Java开发人员可以开发和设计,高度交互的Web应用程序。基于Java的Web应用程序能够以更快的速度,帮助商家在节省时间和成本运行。这迫使每一个网上业务的公司雇用的Java开发者最重要的因素是安全性。
     Java是高度安全的编程语言的Web应用程序开发。在Java开发的能力是非常必要的,它可以通过聘请Java开发人员得到。网络开发公司提供聘请Java开发由Sun微系统公司和Sun认证提供了广泛的认证来学习Java编程中的各种类别,如初级,中级和高级。 Java是在使用中自1995年后成立以来由Java开发者的游戏和网站的发展,许多网站和移动相关的应用。这种长期持久的Java的使用会自动创建一个可靠性因素和理由聘请Java开发人员。 多年的Java开发   经验是需要在这个高度茫茫语言编程是复杂的。因此,要摆脱高爪哇的复杂编程任何人都可以租用的Java开发人员。
    
    展开全文
  • 探索Java应用程序安全需求

    千次阅读 2007-04-20 18:35:00
    我们知道,维护应用程序的安全并不简单。不过我们也清楚,完全可以采取一些措施来缓解安全缺陷带来的风险。如果我们是网络工程师,就可以将精力投入网络分区和包过滤器方面的... Java应用程序的安全条款,是本文所讨

      我们知道,维护应用程序的安全并不简单。不过我们也清楚,完全可以采取一些措施来缓解安全缺陷带来的风险。如果我们是网络工程师,就可以将精力投入网络分区和包过滤器方面的知识。如果用C语言编程,我们就保护程序以防止缓冲区溢出。如果用Java编程,我们就考虑在安全管理器的保护之下运行应用程序。每种情况下,我们都用最佳实践中获得的知识来战胜无意造成的系统故障。

      Java应用程序的安全条款,是本文所讨论内容的依据。我们的讨论把重点放在Java安全管理器方面,这是Java安全架构主题中的一个很小的子集。

      安全管理器是 java.lang.SecurityManager类或扩展自该类的一个类,且它在运行时检查某些应用程序操作的权限。一旦受到安全管理器的控制,应用程序就只能执行那些由相关安全策略特别准许的操作。默认情况下,该策略是在纯文本 策略文件 中指定的。所涉及的操作包括:将文件写入特定目录、写协同属性、建立到特定主机的网络连接,这里列出的只是其中的一小部分。仅用一个简单的JVM命令行选项即可迫使Java应用程序在一个安全管理器下运行,而且安全策略文件可以由任何文本编辑器轻松创建。

      虽然编辑这样一个安全策略文件并添加各种相关规则并不难,不过获得策略制订权会更具有挑战性。而且尽管没人可以为我们提供这样的策略制订权,但工具能帮助我们理解那个策略应该是什么。开发并使用这样的工具是我们即将着手的工作。一旦我们有了它所发现的更宽泛、更细粒度的策略,就可以在开发产品运行时策略时将其作为起点,或者为了更好地理解和认识应用程序的安全需求而研究它。

      本文的核心代码是一个通用的安全管理器,要使用它就需要有Sun的JSE 5 JVM。 为了从特定的Java系统类中获得私有成员数据,从安全管理器对Java Reflecition API的依赖性中派生JSE 5(Java Standard Edition)的需求。由于缺乏对管理器运行所需的某有成员数据的公共访问,因而需要使用Reflection API。使用私有成员反射的后果就是管理器与其运行所在的的JVM内部紧密相关。但这算不上什么严重的后果,因为管理器是一个开发工具,而不是产品组件。一旦管理器提出一个策略制订起点,我们就可以采用那个策略,并在任何现代JVM上运行遵从它的应用程序。

      默认Java安全管理器

      现代文献中所编写、讨论及引用的绝大多数Java代码都代表着在不受安全管理器限制的情况下运行的应用程序。因而这种应用程序对所有的机器资源包括磁盘、网络和应用程序关闭等有完全访权限。不过这种宽泛的访问权限很容易受到限制。仅通过在JVM命令行上设置Djava.security.manager 选项,就可以迫使应用程序在默认的Java安全管理器下运行。

      看一下下面这个简单的应用程序,其目的是读取和打印用户的主目录

      public class PrintHome {
      public static void main(String[] argv) {
      System.out.println(System.getProperty("user.home"));
      }
      }

      编译代码,并让它在默认安全管理器的限制下运行

      $ cd $HOME/Projects/CustomSecurityManager
      $ javac PrintHome.java
      $ java -Djava.security.manager PrintHome
      Exception in thread "main" java.security.AccessControlException:
      access denied (java.util.PropertyPermission user.home read)
      ...
      at PrintHome.main(PrintHome.java:5)

      上面的应用程序中未能获得并打印 user.home属性,而且出于代码可读性方面的考虑,我们省略了栈跟踪中的绝大部分。该应用程序未能执行是因为随着缺省安全策略运行的缺省安全管理器禁止访问user.home属性。这个特权必须在运行策略文件中具体给出。

     

      创建一个包含单一规则的策略文件policy.txt

      grant codeBase "file:/home/cid/Projects/CustomSecurityManager/"{
      permission java.util.PropertyPermission "user.home", "read";

      重新运行该应用程序,对策略文件的引用解决了对user.home的读访问问题

      $ java -Djava.security.policy=policy.txt -Djava.security.manager PrintHome
      /home/cid

      注意到,我们通过设置系统属性java.security.policy=policy.txt来将JVM引用到策略文件中。我们还假定PrintHome类位于/home/cid/Projects/CustomSecurityManager目录中。policy.txt 文件中的规则允许任何包含在那个目录中文件的代码去读取系统属性user.home。结果,规则允许PrintHome像预期的那样运行。包含代码的文件就称其为代码库。因此代码库就是一个类文件或jar文件

      安全策略剖析工具:ProfilingSecurityManager

      正如我们前面提到的,创建一个安全策略文件并不难,即使像 策略池 这样的实用工具可提供协助。而且在策略文件中允许有很强大的 语法快捷方式,它允许创建有表现力的、高效的规则。使用这种高级规则符号,我们可以指定,比如说,递归引用整个目录树的代码库URL。这种递归 URL 规范不仅非常有用、方便,而且能够向代码阅读者屏蔽掉应用程序对资源需求的真实、细粒度的深度。这正是我们寻求的细节。

      因此我们的目标是双方面的:首先,我们希望在安全策略的限制下运行应用程序,或者至少说,我们希望确定该应用程序的安全需求。其次,我们需要一种程序性的方法来确定那些需求。

      带着这些目标,我们来介绍定制的安全管理器secmgr.ProfilingSecurityManager。这个类扩展了java.lang.SecurityManager,但未实施本文至此所讨论的安全策略。不过,据说它会实施此类安全策略如果应用程序可以获得在运行时访问它所请求的一切内容的权利。那么我们可接受这种说法,将其转换成运行时安全策略的起点。这样一来,我们的两个目标就都可以实现。

      为了使用ProfilingSecurityManager,首先编译并有策略地将其放在自己的jar文件中(源代码可以在 资源 这一节找到)。单独将ProfilingSecurityManager放到它自己的jar文件中将允许我们过滤并取消由一些源于它自己jar文件代码库的活动所产生的输出规则。ProfilingSecurityManager通过以下代码可以知道自己独有的代码库,

      if( url.toString().equals(thisCodeSourceURLString) ) {
      return null;
      }

      从而可以避免自身报告。同时编译该工具,并将其制成 jar:

      $ mkdir -p classes lib
      $ rm -rf classes/* lib/*
      $ javac -d classes ProfilingSecurityManager.java
      $ jar cf lib/psm.jar -C classes secmgr/manager
      $ rm -rf classes/secmgr/manager

      在我们继续讲下去之前,应该讲一下如何激活ProfilingSecurityManager ,使之成为应用程序安全管理器。回想前面,我们通过设置一个无对应属性值的系统属性Djava.security.manager来促使应用程序在缺省的Java安全管理器限制下运行。我们需要进一步推广这种措施,并通过给系统属性赋值将定制安全管理器指定为安全管理器:Djava.security.manager=secmgr.ProfingSecurityManager。因此被激活之后,ProfilingSecurityManager将写入System.out,策略文件中需要的这些规则允许应用程序在无需抛出安全违反异常的情况下运行。然而,这些规则不能被处理成最终可用的形式,直到应用程序在ProfilingSecurityManager下完成其运行为止。为什么呢?因为我们知道仅在那时应用程序才完成了以检查资源为目的的请求访问。所以为了使应用程序在ProfilingSecurityManager下完成运行时处理并整理这些规则,我们提供了一个简单的Perl脚本parsecodebase.pl(见 示例代码),以便以易于阅读的格式聚集、格式化、输出由代码库分类并组合的规则。

      好了,我们现在用指定为安全管理器的ProfilingSecurityManager 和由parsecodebase.pl处理的规则输出来运行简单的 PrintHome 程序,会产生如下结果:

      $ java -cp .:lib/psm.jar -Djava.security.manager=secmgr.ProfilingSecurityManager PrintHome > raw.out
      $ parsecodebase.pl < raw.out > policy.txt
      $ cat policy.txt
      grant codeBase "file:/home/cid/Projects/CustomSecurityManager/" {
      permission java.util.PropertyPermission "user.home", "read";
      };
      $ java -cp . -Djava.security.manager -Djava.security.policy=policy.txt PrintHome
      /home/cid

      我们再次看到,ProfilingSecurityManager同时满足了我们的两个设计目标:

    •   我们的应用程序使用定义良好、特定于应用程序的策略在安全管理器下运行
    •   我们通过编程的方式确定了那个策略

      ProfilingSecurityManager是如何工作的呢?ProfilingSecurityManager重写了java.lang.SecurityManager 的 checkPermission 方法的两个版本。这个方法的两种形式是用于检查应用程序请求访问哪个资源或活动的中央枢纽。被重写的checkPermission方法总是不需丢弃异常而返回——本意是“允许访问”—不过条件是它们必须建立并输出规则,以允许为其操作负责的活动能首先得到调用。

      一个更复杂的例子:剖析Tomcat Web应用程序

      先将那个简单实例暂且搁置,我们来观察ProfilingSecurityManager的一个复杂应用:剖析Tomcat Web应用程序。通过传送 -security 选项到标准启动脚本,Tomcat可在默认Java安全管理器下运行:

      $ $CATALINA_HOME/bin/startup.sh -security

      传送 -security 选项到startup.sh 会导致对拥有同样-security 选项的$CATALINA_HOME/bin/catalina.sh 的调用。$CATALINA_HOME/bin/catalina.sh 实际上是调用Java来运行Tomcat 引导类org.apache.catalina.startup.Bootstrap 的一种脚本,在这种情况下,将进一步受到$CATALINA_HOME/conf/catalina.policy中所规定默认策略的限制。如果我们将调用停留在此处,Tomcat将在由默认提供策略所限制的默认Java安全管理器下运行。不过为了剖析Tomcat以及它可能包含的Web应用程序,我们需要稍微多做一些工作。为了用ProfilingSecurityManager剖析Web应用程序,我们必须开发新的Tomcat启动脚本。新启动脚本是一个临时设备,而且仅用于剖析,之后被废弃。

      为 $CATALINA_HOME/bin/catalina.sh做一个备份副本。在脚本顶部附近的 $CATALINA_HOME/bin/catalina.sh 中近插入shell命令set -x ,然后启动Tomcat。保存显示的shell执行命令到一个包含临时启动脚本的文件中。停止Tomcat,编辑临时脚本,指定ProfilingSecurityManager 为安全管理器并修改类路径来定位它。

      以下是在Linux操作系统下的Tomcat 5.5.17中,我们为使用 ProfilingSecurityManager进行编辑之前的临时启动脚本,略经调整和格式化。

      #!/bin/sh
      log=$CATALINA_HOME/logs/catalina.out
      /java/jdk/jdk1.5.0_06/bin/java /
      -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager /
      -Djava.util.logging.config.file=/home/tomcat/tomcat/conf/logging.properties /
      -Djava.endorsed.dirs=/home/tomcat/tomcat/common/endorsed /
      -classpath :/home/tomcat/tomcat/bin/bootstrap.jar:/
      /home/tomcat/tomcat/bin/commons-logging-api.jar /
      -Djava.security.manager /
      -Djava.security.policy==/home/tomcat/tomcat/conf/catalina.policy /
      -Dcatalina.base=/home/tomcat/tomcat /
      -Dcatalina.home=/home/tomcat/tomcat /
      -Djava.io.tmpdir=/home/tomcat/tomcat/temp /
      org.apache.catalina.startup.Bootstrap start >> $log /
      2>&1 &

      为了使用 ProfilingSecurityManager而进行编辑后,该启动脚本如下所示:

      #!/bin/sh
      log=$CATALINA_HOME/logs/catalina.out
      PATHTOPSM=$HOME/lib/psm.jar # make sure the profiler jar file is here
      /java/jdk/jdk1.5.0_06/bin/java /
      -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager /
      -Djava.util.logging.config.file=/home/tomcat/tomcat/conf/logging.properties /
      -Djava.endorsed.dirs=/home/tomcat/tomcat/common/endorsed /
      -classpath $PATHTOPSM:/home/tomcat/tomcat/bin/bootstrap.jar:/
      /home/tomcat/tomcat/bin/commons-logging-api.jar /
      -Djava.security.manager=secmgr.manager.ProfilingSecurityManager /
      -Djava.security.policy==/home/tomcat/tomcat/conf/catalina.policy /
      -Dcatalina.base=/home/tomcat/tomcat /
      -Dcatalina.home=/home/tomcat/tomcat /
      -Djava.io.tmpdir=/home/tomcat/tomcat/temp /
      org.apache.catalina.startup.Bootstrap start >> $log /
      2>&1 &

      这两个脚本的不同点在于新临时版本:

    •   增加了类路径以指向ProfilingSecurityManager类的位置,即$HOME/lib/psm.jar 中
    •   在-Djava.security.manager参数中指定ProfilingSecurityManager为安全管理器

      现在我们可以开始剖析了。用临时启动脚本启动 Tomcat 。促使相关web应用程序覆盖那些会在生产中被覆盖的代码,以此考验它们的速度。用代码覆盖Web应用程序是一个公认的、难以实现的命令,而且可能仅有部分可以实现。停止Tomcat,通过parsecodebase.pl运行$CATALINA_HOME/logs/catalina.out ,如下所示,同时将处理过的规则保存到到 policy.txt中。

      $ parsecodebase.pl < $CATALINA_HOME/logs/catalina.out > policy.txt

      清单 9. 处理由Tomcat和其中所包含的任意已执行Web应用程序生成的规则

      注意 ProfilingSecurityManager只能为那些在剖析过程中执行的代码生成规则。它会探测理论上可以在随机运行实例中触及的所有代码分支,而不检查类文件中的字节码。这样的字节码分析可能是将来的一个研究领域,我们将加以补充,但它不能替换由 ProfilingSecurityManager 做的运行时分析。

      对随Tomcat提供的策略文件 $CATALINA_HOME/conf/catalina.policy 的检查表明,Tomcat ("Catalina")系统代码库获得了所有平台的权限。事实上,ProfilingSecurityManager会发现Tomcat系统类的这些相同规则,但会以细粒度的方式指定它们。ProfilingSecurityManager发现的关于Tomcat系统类的规则应从policy.txt中手动删除。

      删除了 Tomcat系统规则后,仍然保留在policy.txt中的规则就是生产安全策略的起点。这些规则表示Web应用程序的安全需求。应仔细检查这些规则中的每一条,以了解其用途,并确保它与我们的应用程序目标相一致。确信有好的草案策略时,为$CATALINA_HOME/conf/catalina.policy做一个备份副本,并从 policy.txt中将新草案规则整合进来。然后用-security 选项集回复到原来的 Tomcat 启动脚本,继续测试。

      结束语

      在Java安全管理器下运行应用程序可以增加代码的健壮性。而且,虽然获得安全策略制订权是一项艰巨的挑战,不过这样做会让我们安心,因为代码将在我们所规定的安全约束的限制下运行。ProfilingSecurityManager可以为我们提供对应用程序所请求访问的资源集的充分可见度,从而帮助我们获得策略制订权。

    java-security-profiling.zip

    来源:http://searchwebservices.techtarget.com.cn/tips/25/3262525.shtml

    展开全文
  • Wrapper用途 在做完一个项目程序后,有时会有两种需求想法: 在每次机器重启后自动运行程序。 在程序运行过程中如果发生了死锁、内存溢出或程序崩溃...有一个java程序叫Java Service Wrapper。这是用来在window...

    Wrapper用途

    在做完一个项目程序后,有时会有两种需求想法:

    • 在每次机器重启后自动运行程序。
    • 在程序运行过程中如果发生了死锁、内存溢出或程序崩溃等问题时程序能自动重启。

    当然。要实现这两种效果的方案有很多。可以在系统引导文件中加入开机运行程序引导,也可以写一个系统监听程序等等。

    现在有一个更简单的解决方案。有一个java程序叫Java Service Wrapper。这是用来在windows或unix/linux系统中将java程序包装成系统服务并执行守护进程。

    Java Service Wrapper有三个版本。professional/standard/community 前两个版本要收费功能也更多。对我们来说,社区版的已经够用了,(对于死锁重启需要收费版的)。

    分析

    从软件的名子上就能看出来。这个软件是用来包装的。我们的程序完成以后会有一个main入口。wrapper就是将这个main方法进行包装再提供自己的一个main入口。这样,我们在运行时都是运行的wrapper的程序。它会建立各种监控和服务,在建立完成后再加载运行被包装的方法。等监控到运行的程序出问题了就会进行相应的处理。

    文件解释

    所需文件(以windows版本为例)
    1.从官网 http://wrapper.tanukisoftware.com 上下载wrapper的软件。
    在这里插入图片描述
    2.我们只需要几个核心的文件
    wrapper.jar 核心文件,位于lib文件夹中
    wrapper.exe 因为是在windows系统中运行所以需要。位于bin文件夹中
    wrapper.dll 因为是在windows系统中运行所以需要。 位于lib文件夹中
    wrapper.conf 核心配置文件,位于src/conf文件夹中。

    实现方式

    针对不同程序有不同的实现方式:
    1.如果你的程序是不间断运行的。则只需要设置配置文件即可。
    2.如果你的程序只是在系统启动时运行一次,或不需要连续运行的,则要加入入口包装类。不然,虽然你的程序已经执行成功且退出了(如:在系统启动时检查下环境再给你的提示信息就结束)。但wrapper会认为你的程序不应该结束,会不停的重启你的服务。这时你要加入包装类就没有这个问题了。

    示例

    创建java测试项目jar包

    1.创建简单的java project
    在这里插入图片描述
    2.创建主类函数。WrapperDemoMain.java

    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class WrapperDemoMain {
    
    	static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
    	public static void main(String[] args) {
    		while (true) {
    			try {
    				Date date = new Date();
    				// 输出信息
    				System.out.println("time: " + format.format(date));
    				// 为了更好观察 当前线程睡眠一段随机时间
    				Thread.sleep((int) Math.random() * 10000 + 5000);
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    

    3.打包当前项目成my_wrapper_demo.jar
    在这里插入图片描述
    在这里插入图片描述
    4.配置Wrapper

    • 解压Wrapper后的文件目录如下:
      在这里插入图片描述
    • 首先将之前打包的my_wrapper_demo.jar包拷贝到lib目录下
      在这里插入图片描述
    • 在conf文件下创建my_wrapper_demo.conf。创建方式可以将wrapper.conf拷贝一份重命名为my_wrapper_demo.conf
    #java.exe所在位置
    wrapper.java.command=D:/Program Files (x86)/Java/jre1.8.0_181/bin/java
    
    #日志级别
    wrapper.java.command.loglevel=DEBUG
    
    #主类入口
    #方式一:使用wrapper自带WrapperSimpleApp的mainClass是固定写法,#wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
    #此时parameter.1配置自己的主程序入口所在类
    #parameter.1是自己的主程序入口所在类(从包名开始)
    wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
    wrapper.app.parameter.1=com.gm.test.WrapperDemoMain
    
    #方式二:mainclass如果写成自己的入口程序自己的程序需要实现wrapper的WrapperListener接口
    #此时parameter.1无需配置,parameter.1=
    
    #依赖的包,第一个是wrapper包,第二个是自己打的包以及程序依赖包
    wrapper.java.classpath.1=../lib/wrapper.jar
    wrapper.java.classpath.2=../lib/*.jar
    
    #固定写法,依赖的wrapper的包
    wrapper.java.library.path.1=../lib
    
    #日志文件位置
    wrapper.logfile=../logs/wrapper.log
    
    #服务名称以及描述信息
    wrapper.console.title=my_wrapper_demo
    wrapper.name=my_wrapper_demo
    wrapper.displayname=my_wrapper_demo
    wrapper.description=my_wrapper_demo
    
    # Initial Java Heap Size (in MB)
    wrapper.java.initmemory=1024
    
    # Maximum Java Heap Size (in MB)
    wrapper.java.maxmemory=1024
    
    • 使用cmd命令行进入wrapper-windows-x86-32-3.5.36\bin下执行 wrapper -c
      …/conf/my_wrapper_demo.conf进行测试配置信息。显示如下则表示正常启动
      在这里插入图片描述
      wrapper -i
      …/conf/my_wrapper_demo.conf创建系统服务
      在这里插入图片描述
      启动系统服务
      在这里插入图片描述
      在这里插入图片描述
      常用命令
      在这里插入图片描述

    wrapper配置文件详解

    #文件编码,每个配置文件起始位置必须指定该文件的编码格式
    encoding=UTF-8
     
    # 如果包含配置文件出现问题可以使用debug调试模式,去掉一个"#",格式为#include.debug
    #include.debug
     
    # 包含子配置文件,可以是配置信息也可以是许可信息
    include ../conf/wrapper-license.conf
    include ../conf/wrapper2.conf
     
    # 是否开启许可文件debug模式
    wrapper.license.debug=TRUE
     
     
     
    # 指定Wrapper语言,默认使用系统语言
    wrapper.lang=en_US
     
    #指定Wrapper 语言资源位置,如果该文件不存在则默认设置为en_US
    wrapper.lang.folder=../lang
     
     
     
    # Java 程序配置:
    #   (1)默认使用PATH环境变量配置信息则使用下列配置形式
    wrapper.java.command=java
     
    #   (2)如果想单独配置运行程序,则可采用此种配置方式
    set.JAVA_HOME=/java/path
    wrapper.java.command=%JAVA_HOME%/bin/java
     
    # java程序日志级别
    wrapper.java.command.loglevel=INFO
     
     
     
    # Java Main class,也就是程序入口  
    #该类需要实现WrapperListener 接口并保证WrapperManager 得到初始化(调用WrapperManager.start(WrapperListener listener, String[] args) 方法)。
    wrapper.java.mainclass=com.helloworld.hello.HelloWorld
     
     
     
    # Java Classpath配置,必须从序号"1"开始,添加新的jar包后序号递增
    wrapper.java.classpath.1=../lib/wrapper.jar
    wrapper.java.classpath.2=../lib/hello.jar
     
    # Java 类库路径 (Wrapper.DLL 或 libwrapper.so 依赖文件的存放位置)
    wrapper.java.library.path.1=../lib
     
     
     
    # 32/64位选择,true为自动选择
    wrapper.java.additional.auto_bits=TRUE
     
    # Java附加参数
    wrapper.java.additional.1=
     
     
     
    # Java Heap 初始化大小(单位:MB)
    wrapper.java.initmemory=3
     
    # Java Heap 最大值(单位:MB)
    wrapper.java.maxmemory=64
     
     
     
    # 应用程序参数,也就是main函数的String[] args参数值,序号需从"1"开始,例如:
    wrapper.app.parameter.1=g21121
    wrapper.app.parameter.2=http://286.iteye.com/
     
     
     
    # 是否显示debug日志
    wrapper.debug=TRUE
     
    # 控制台信息输出格式
    wrapper.console.format=PM
     
    # 控制台日志级别
    wrapper.console.loglevel=INFO
     
    # 日志文件位置及名称
    wrapper.logfile=../logs/wrapper.log
     
    # 日志文件输出格式
    wrapper.logfile.format=LPTM
     
    # 日志文件日志级别
    wrapper.logfile.loglevel=INFO
     
    # 限制日志文件大小,0为不限制,参数:k,m,g等
    wrapper.logfile.maxsize=10m
     
    # 限制最大日志文件数,0为不限制
    wrapper.logfile.maxfiles=0
     
    # syslog 日志级别
    wrapper.syslog.loglevel=NONE
     
     
     
    # 允许使用非连续编号的属性,例如:path的序号可以打乱
    wrapper.ignore_sequence_gaps=TRUE
     
    # 如果pid文件已经存在则不启动程序
    wrapper.pidfile.strict=TRUE
     
    # 控制台启动时显示的标题
    wrapper.console.title=------------Wrapper Console------------
     
     
     
    # 检测JVM中的死锁线程(需要标准版Wrapper)
    wrapper.check.deadlock=TRUE
    #间隔,单位:秒
    wrapper.check.deadlock.interval=10
    #出现死锁时处理事件
    wrapper.check.deadlock.action=RESTART
    #信息输出级别,FULL:全部;SIMPLE:精简;NONE:无;
    wrapper.check.deadlock.output=FULL
     
     
     
    # 内存溢出检测,Wrapper提供了几种不同的匹配机制
    wrapper.filter.trigger.999=wrapper.filter.trigger.*java.lang.OutOfMemoryError
    wrapper.filter.allow_wildcards.999=TRUE
    wrapper.filter.action.999=NONE
    wrapper.filter.trigger.1000=[Loaded java.lang.OutOfMemoryError
    wrapper.filter.action.1000=NONE
    wrapper.filter.trigger.1001=java.lang.OutOfMemoryError
    #wrapper.filter.trigger.1001=Exception in thread "*" java.lang.OutOfMemoryError
    #wrapper.filter.allow_wildcards.1001=TRUE
    wrapper.filter.action.1001=RESTART
    wrapper.filter.message.1001=The JVM has run out of memory.
     
     
     
    # 邮件基本信息设置
    wrapper.event.default.email.debug=TRUE
    #smtp服务器地址
    wrapper.event.default.email.smtp.host=
    #smtp服务器端口
    wrapper.event.default.email.smtp.port=25
    #邮件主题
    wrapper.event.default.email.subject=[%WRAPPER_HOSTNAME%:%WRAPPER_NAME%:%WRAPPER_EVENT_NAME%] Event Notification
    #发件人地址
    wrapper.event.default.email.sender=<Sender email>
    #收件人地址
    wrapper.event.default.email.recipient=<Recipient email>
    # 指定文件内容
    wrapper.event.jvm_restart.email.body=The JVM was restarted.\n\nPlease check on its status.\n
     
     
     
    # 邮件日志相关配置
    wrapper.event.default.email.attach_log=TRUE
    wrapper.event.default.email.maillog.lines=50
    wrapper.event.default.email.maillog.format=LPTM
    wrapper.event.default.email.maillog.loglevel=INFO
     
     
     
    # 触发事件,即当以下事件为true时发送邮件
    wrapper.event.wrapper_start.email=TRUE
    wrapper.event.jvm_prelaunch.email=TRUE
    wrapper.event.jvm_start.email=TRUE
    wrapper.event.jvm_started.email=TRUE
    wrapper.event.jvm_deadlock.email=TRUE
    wrapper.event.jvm_stop.email=TRUE
    wrapper.event.jvm_stopped.email=TRUE
    wrapper.event.jvm_restart.email=TRUE
    wrapper.event.jvm_failed_invocation.email=TRUE
    wrapper.event.jvm_max_failed_invocations.email=TRUE
    wrapper.event.jvm_kill.email=TRUE
    wrapper.event.jvm_killed.email=TRUE
    wrapper.event.jvm_unexpected_exit.email=TRUE
    wrapper.event.wrapper_stop.email=TRUE
    
    
    展开全文
  • 需求说明: 使用记事本编写 Java 程序,输出“大家好!我的梦想是做一名 Java 高级工程师!”。 为 Java 程序添加单行和多行注释以及... 使用记事本编写Java程序,输出“大家好!我的梦想是做一名 Java 高级工程师...

    返回本章节

    返回作业目录


    需求说明:

    使用记事本编写 Java 程序,输出“大家好!我的梦想是做一名 Java 高级工程师!”。

    为 Java 程序添加单行和多行注释以及文档注释。

     

    实现思路:

    编写源代码及添加注释

    1. 使用 Windows 快捷键“Win+R”,输入 notepad,打开 Windows 记事本
    2. 使用记事本编写Java程序,输出“大家好!我的梦想是做一名 Java 高级工程师!”
    3. 将文件另存为“MyFirstJavaApp.java”
    4. 使用 javac 编译源代码得到字节码。
    5. 使用 Java 命令运行字节码文件。
    public class MyFirstJavaApp{
            /*
             * main 函数是当前 Java 程序的入口
    	  * 每个 Java 程序有且只有一个 main 函数!
             * main 函数的格式是固定的!
             */
            public static void main(String[] args){
    		// 这行代码的作用是在控制台打印一句文字
    		// 双引号一定得用英文符号!
    		System.out.println(" 大家好!我的梦想是做一名 Java 高级工程师! ");
            }
    }
    

     

    展开全文
  • 商城小程序功能需求Java

    千次阅读 2020-03-20 18:18:13
  • java程序优雅的退出

    2019-10-11 23:30:33
    大家肯定遇到了需要在程序java退出之前,需要清理打开的资源,提交事务,处理已经获取的信息等等需求。 就像是人去之前得留下遗书是吧!! 文章介绍了如何优雅的退出Java 程序,在退出之前办好后事...
  • 任务一 Java应用实例需求分析 ;任务一 Java应用实例需求分析;任务一 Java应用实例需求分析;任务一 Java应用实例需求分析;任务一 Java应用实例需求分析;任务一 Java应用实例需求分析;任务一 Java应用实例需求分析;...
  • window下监控java程序

    2018-09-16 22:41:25
    1、需求:window环境下对多个java程序进行监控,如果程序意外停止,将自动对任务进行重启。 2、分析:启动java程序后,进程中的任务名称都是java.exe;当程序停止后,我们无法通过文件名称来启动对应的程序。为了能...
  • JAVA 程序写作思路

    2013-10-24 01:39:56
    JAVA 程序注释的作用,“程序是思路的体现形式”,一开始写JAVA程序多思考,不要怕慢。 /* 需求: 练习写一个hello world程序。 思路: 1. 定义一个类,因为JAVA程序都定义类中,JAVA程序都是以类的形式存在...
  • BK140A《JAVA程序设计》结课设计 项目报告 姓名 所属服务站 用户名 1.程序的运行环境、安装步骤 (1)运行环境:例如,Windows 7,JDK1.8,Mysql (2)依赖的第3方库:是否需要其他的支持文件...
  • 自己写的一个buffon试验演示程序,通过实验计算PI值,程序里小线条模拟的是针。 有java小作业需求的朋友可以下载,赚点积分
  • java程序maven配置文件

    2020-10-12 20:31:05
    java开发有部分需求需要配置maven文件,在配置其他需求jar包时,会有特殊的情况导入不成功是.m2文件导致,本文件仅提供于java连接MySQL数据库的JDBC中,mysql驱动导包失败问题
  • Java程序不做预先编译,当有需求时对Java进行编译解释 对性能要求比较高,应用场景比较典型如网页开发,手机app java程序运行机制 使用Java编译器对Java源程序(*.java)进行编译,可以得到Java虚拟机...
  • . 程序设计实践 题目 小学生四则运算练习程序 学校 学院 班级 学号 姓名 _ 2014 年 ...Java 基础知识给出所选项目的基本设计与实现 三项目需求 所选项目名称 小学生四则运算练习程序 实现对小学生简单加法减法乘法除法
  • 程序设计实践 题目 小学生四则运算练习程序 学校 学院 班级 学号 ...Java基础知识给出所选项目的基本设计与实现 三 项目需求 所选项目名称小学生四则运算练习程序 实现对小学生简单加法减法乘法除法的四则运算练习要求
  • sbt 支持打包Java程序

    2021-02-26 15:23:59
    最开始用sbt+scala,后来有了scala和Java混合使用的需求,之前在sbt项目下写Java程序,用idea和eclipse运行没问题,但是打包报错,所以一直认为sbt不支持Java,于是就有了IDEA 新建Maven项目同时支持Java和Scala两种...
  • 小学生四则运算练习程序 学校 学院 班级 学号 姓名_ 2014 年 11月 24 日 实践基础程序设计实践 一实践目的 1掌握基本输入输出 2掌握方法定义与调用理解参数传递方式 二实践要求 利用方法数组基本输入输出等Java基础...
  •  A主机上的“test.mdb”文件(Access数据库文件)通过Java程序发送到B主机某个共享文件夹内,A、B主机处于同一网段,均为Windows操作系统(A主机为Windows7以上版本,B主机Windows版本不作规定),A主机能访问B主机...
  • Java笔记---将java程序打包成exe程序

    千次阅读 2016-01-18 15:13:32
    我们编写好一个 C/S 的 Java 程序后,虽然我们可以使用 Eclipse 来启动我们的程序。但是当我们需要将程序运行在其他电脑上呢?难道,我们需要在安装JDK,然后安装Eclipse再来运行?这样肯定是不符合我们的需求的。...
  • java 程序设计课件

    2010-03-06 20:37:42
    Java是SUN公司开发的源于Internet的一种现代程序设计语言。多年来,SUN公司对Java产品不断改进升级,使之紧跟时代步伐,满足了日益复杂的软件开发需求
  • 最终,这门语言随着技术的变化,不断的被改善以迎合变化的市场需求。 无论你是否拥有一家科技公司,软件已经成为几乎每一个企业不可或缺的一部分,为了吸引你潜在的顾客,你应该交付给客户一个技术上有创新的产品...
  • 2. java 程序开发步骤

    2019-12-24 12:45:12
    一 编写一个java程序 我们在实际开发中首先会根据需求说明编写java的源文件,java原文件事以.java后缀结尾的. 我们现在首先编写一个能打印"hello world" 的程序. 1)将 Java 代码编写到扩展名为 Hello.java 的文件中。...
  • Java程序构造©Day3

    2018-03-20 21:33:04
    Java程序构造©Day3 March 12th, 2018 标签(空格分隔): Java程序构造 Java程序构造©Day3 第七章 7.5 软件测试 测试优先的编程 1 软件测试 什么是测试 测试分类 白盒测试 黑盒测试 测试困难 2 测试用例 ...
  • java并发程序设计

    2018-04-09 09:46:29
    java并发程序设计,帮助需求的童鞋们,提高Java技术,不管是新手还是老手,还是很有学习参考价值的。
  • java聊天程序

    2014-04-25 10:01:59
    基于java开发的简单网络聊天程序的源码,实现了聊天的基础功能,易于理解,可在此基础上添加新功能,满足各种聊天需求。希望对你有帮助
  • 防止Java程序被反编译

    2011-04-24 12:18:12
    Java语言的出现,使得反编译变得非常容易而有效。原因如下:1.由于跨平台的需求,Java的指令集比较简单而通用,较容易得出程序的语义信息;...由于Java程序自身的特点,对于不经过处理的Java程序反编译的效果非常好
  •  一、熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的JavaAPI,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。  二、熟悉基于JSP和Servlet的JavaW
  • Eclipse编写Java程序

    2012-08-29 16:18:00
    Eclipse的Java开发工具(JDT),允许用户使用它的环境进行编辑、调试及运行Java程序。1. Java运行环境设置 指定JRE的版本。Eclipse设置默认的运行环境的JRE设置成当前配置,用户可以修改多个JRE版本的运行环境,并选择...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,932
精华内容 5,972
关键字:

java程序需求

java 订阅