一.验证码问题,,在windows下验证码运行正常,到了linux下验证码程序走不通也不抛异常,什么现象都没有就是走不动了,问题可能在于你的linux服务器没有配置成java.awt.headless 可以执行。。。在程序中加入:
System.setProperty("java.awt.headless", "true");
二.netstat -nap |grep java(端口号) 可以查看指定程序的端口情况,或者是指定端口的程序运行情况
ps -ef | grep java 也是如此
杀某个端口下的程序,,用ps那个命令查出pid,然后执行kill命令。。强制杀用-9参数。
三.改变一个文件的权限用命令chmod +x file,,这个是最常用的。。什么权限都+上了。然后就可以执行或者修改
四.现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法。
1.修改/etc/profile文件
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。
(1)用文本编辑器打开/etc/profile
(2)在profile文件末尾加入:
JAVA_HOME=/usr/share/jdk1.5.0_05
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
(3)重新登录
注解:
a. 你要将 /usr/share/jdk1.5.0_05jdk 改为你的jdk安装目录
b. linux下用冒号“:”来分隔路径
c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值,在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种常见的错误。
d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。
e. export是把这三个变量导出为全局变量。
f. 大小写必须严格区分。
2. 修改.bashrc文件
这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。
(1)用文本编辑器打开用户目录下的.bashrc文件
(2)在.bashrc文件末尾加入:
set JAVA_HOME=/usr/share/jdk1.5.0_05
export JAVA_HOME
set PATH=$JAVA_HOME/bin:$PATH
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
(3)重新登录
3. 直接在shell下设置变量
不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。
只需在shell终端执行下列命令:
export JAVA_HOME=/usr/share/jdk1.5.0_05
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
五.class版本问题解决
Unsupported major.minor version 49.0错误详解
一:要解决的问题
我 们在尝鲜 JDK1.5 的时候,相信不少人遇到过 Unsupported major.minor version 49.0 错误,当时定会茫然不知所措。因为刚开始那会儿,网上与此相关的中文资料还不多,现在好了,网上一找就知道是如何解决,大多会告诉你要使用 JDK 1.4 重新编译。那么至于为什么,那个 major.minor 究竟为何物呢?这就是本篇来讲的内容,以使未错而先知。
我觉得我是比 较幸运的,因为在遇到那个错误之前已研读过《深入 Java 虚拟机》第二版,英文原书名为《Inside the Java Virtual Machine》( Second Edition),看时已知晓 major.minor 藏匿于何处,但没有切身体会,待到与 Unsupported major.minor version 49.0 真正会面试,正好是给我验证了一个事实。
首先我们要对 Unsupported major.minor version 49.0 建立的直接感觉是:JDK1.5 编译出来的类不能在 JVM 1.4 下运行,必须编译成 JVM 1.4 下能运行的类。(当然,也许你用的还是 JVM 1.3 或 JVM 1.2,那么就要编译成目标 JVM 能认可的类)。这也解决问题的方向。
二:major.minor 栖身于何处何谓 major.minor,且又居身于何处呢?先感性认识并找到 major.minor 来。
写一个 Java Hello World! 代码,然后用 JDK 1.5 的编译器编译成,HelloWorld.java
public static void "Hello, World!" package com.unmi; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
用 JDK 1.5 的 javac -d . HelloWorld.java 编译出来的字节码 HelloWorld.class 用 UltraEdit 打开来的内容如图所示:
![[转]Unsupported major.minor version 49.0错误详解_天高地迥兴尽悲来_新浪博客 - 澎湃 - 一线牵 [转]Unsupported major.minor version 49.0错误详解_天高地迥兴尽悲来_新浪博客 - 澎湃 - 一线牵](http://pic.diybl.com/pic/20090304/157633/0.jpg)
从 上图中我们看出来了什么是 major.minor version 了,它相当于一个软件的主次版本号,只是在这里是标识的一个 Java Class 的主版本号和次版本号,同时我们看到 minor_version 为 0x0000,major_version 为 0x0031,转换为十制数分别为0 和 49,即 major.minor 就是 49.0 了。
三:何谓 major.minor 以及何用
Class 文件的第 5-8 字节为 minor_version 和 major_version。Java class 文件格式可能会加入新特性。class 文件格式一旦发生变化,版本号也会随之变化。对于 JVM 来说,版本号确定了特定的 class 文件格式,通常只有给定主版本号和一系列次版本号后,JVM 才能够读取 class 文件。如果 class 文件的版本号超出了 JVM 所能处理的有效范围,JVM 将不会处理该 class 文件。
在 Sun 的 JDK 1.0.2 发布版中,JVM 实现支持从 45.0 到 45.3 的 class 文件格式。在所有 JDK 1.1 发布版中的 JVM 都能够支持版本从 45.0 到 45.65535 的 class 文件格式。在 Sun 的 1.2 版本的 SDK 中,JVM 能够支持从版本 45.0 到46.0 的 class 文件格式。
1.0 或 1.2 版本的编译器能够产生版本号为 45.3 的 class 文件。在 Sun 的 1.2 版本 SDK 中,Javac 编译器默认产生版本号为 45.3 的 class 文件。但如果在 javac 命令行中指定了 -target 1.2 标志,1.2 版本的编译器将产生版本号为 46.0 的 class 文件。1.0 或 1.1 版本的 JVM 上不能运行使用-target 1.2 标志所产生的 class 文件。
JVM 实现的 第二版中修改了对 class 文件主版本号和次版本号的解释。对于第二版而言,class 文件的主版本号与 Java 平台主发布版的版本号保持一致(例如:在 Java 2 平台发布版上,主版本号从 45 升至 46),次版本号与特定主平台发布版的各个发布版相关。因此,尽管不同的 class 文件格式可以由不同的版本号表示,但版本号不一样并不代表 class 文件格式不同。版本号不同的原因可能只是因为 class 文件由不同发布版本的 java 平台产生,可能 class 文件的格式并没有改变。
上面三段节选自《深入 Java 虚拟机》,啰嗦一堆,JDK 1.2 开启了 Java 2 的时代,但那个年代仍然离我们很远,我们当中很多少直接跳在 JDK 1.4 上的,我也差不多,只是项目要求不得不在一段时间里委屈在 JDK 1.3 上。不过大致我们可以得到的信息就是每个版本的 JDK 编译器编译出的 class 文件中都带有一个版本号,不同的 JVM 能接受一个范围 class 版本号,超出范围则要出错。不过一般都是能向后兼容的,知道 Sun 在做 Solaris 的一句口号吗?保持对先前版本的 100% 二进制兼容性,这也是对客户的投资保护。
解决方案:遇到这个问题就只有重新的编译项目,,然后部署,,一个J2EE项目是在被导入的时候编译,首先要修改IDE所用jdk的版本,,然后把项目导入进去以后再单独修改项目的jdk版本,,具体的修改看图片。。



就这几个地方就可以了。。
六.su的应用
功能:变更用户
用法:su [-flmp][--help][--version][-][-c <指令>][-s][用户帐号]
参数:
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份
--session-command=COMMAND:跟-c相同,但是不生成新的会话
-f或--fast:适用于csh与tsch,使shell不用去读取启动文件
-.-l或--login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME,PATH变量
-m,-p或--preserve-environment:变更身份时,不要变更环境变量
-s或--shell= :指定要执行的shell
--help:显示帮助
--version :显示版本信息
例子:su回车直接是切换到root用户
su - 用户名 切换到用户并且带着所有的全局环境变量
sudo 用户 则是带着用的权限

- 大小: 33.7 KB

- 大小: 28.9 KB

- 大小: 29.9 KB

- 大小: 30.6 KB
分享到:
相关推荐
### Java OA项目开发中的关键技术与心得 在进行Java OA项目的开发过程中,我们深入探索了一系列关键技术和框架,这对于构建稳定、高效的企业级应用至关重要。本文旨在分享在开发J2EE OA项目——代号J2EEOA——过程...
这部分笔记内容可能包括对其他Java教程的学习、经典书籍的阅读心得,以及可能涉及到的开源项目和最佳实践。 通过系统学习并实践这些笔记内容,学习者可以建立起坚实的Java基础,为进一步深入学习Java EE(企业版)...
在MTK平台上,HAL层的开发要求开发者对硬件特性有深入理解,并能正确实现接口函数,确保上层应用的兼容性和可移植性。 五、应用程序开发 对于上层应用程序,开发者通常会使用Java或Kotlin进行Android应用开发。理解...
2. **Java移植** Rixe的开发语言是Java,这使得它具有跨平台的特性,可以在Windows、Mac OS X、Linux等多种操作系统上运行。Java的面向对象特性使得游戏逻辑的模块化设计更为便捷,代码可读性和可维护性较高。 3. ...
- **移植工具使用**:通过使用GNU Automake、Autoconf和Libtool等工具,MySQL实现了良好的移植性。 - **广泛的接口支持**:除了提供C和C++的接口外,还支持Eiffel、Java、Perl、PHP、Python等多种编程语言的接口。 ...