一.验证码问题,,在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项目时要特别注意代码和依赖环境的兼容性问题,例如操作系统相关的API调用。在Linux服务器上,如果遇到不兼容的情况,可能需要修改代码或者寻找替代方法。 8. 文档和组件库引用: 在Java项目中,经常需要...
### Java虚拟机在ARM_Linux平台的移植全过程 #### 一、引言 随着软件行业的开源风气日益增强,开源的Java虚拟机(JVM)的开发变得越来越活跃。市场上已经出现了一系列成熟且易于移植的开源Java虚拟机,例如Kaffe、...
在嵌入式Linux系统下,Java虚拟机的移植是实现Java程序在ARM平台上的运行环境的重要步骤。该研究的目的是实现Java虚拟机在ARM—Linux平台上的移植,结合Java核心类库GNU Classpath的裁减和安装,实现在嵌入式ARM—...
"Linux下的程序移植到Windows" Linux下的程序移植到Windows需要修改的地方是非常重要的,因为Linux和Windows是两种不同的操作系统,它们之间存在很多差异。因此,在移植程序时需要注意许多问题,本文将介绍其中的...
Linux下GDB的移植 GDB是GNU开放源代码的调试器,广泛应用于Linux系统中。为了在Linux下进行程序调试,需要将GDB移植到目标平台上。本文将详细介绍GDB的移植步骤,包括准备工作、编译ncurses、编译GDB、测试等环节。...
Lwip 协议栈在嵌入式 Linux 下的移植与实现 Lwip 协议栈是一种轻量级的 TCP/IP 协议栈,广泛应用于嵌入式系统中。在嵌入式 Linux 操作系统下,Lwip 协议栈的移植和实现是非常重要的。本文将详细介绍 Lwip 协议栈在...
"java部署规范V3.0" Java 部署规范V3.0是为了适应公司项目逐渐由.NET 转向 ...Java 部署规范V3.0旨在为 Java 新项目及涉及项目技术管理涉及人员提供详细的指导和指南,以确保项目的部署和管理符合公司的规范和标准。
Docker 部署 Java 项目流程 Docker 是一个开源的应用容器引擎,基于 Go 语言开发并遵从 Apache2.0 协议开源。使用 Docker 可以让开发者封装他们的应用以及依赖包到一个可移植的容器中,然后发布到任意的 Linux 机器...
基于Hisi3559A移植部署YOLOv5算法C源码+项目使用说明.zip基于Hisi3559A移植部署YOLOv5算法C源码+项目使用说明.zip基于Hisi3559A移植部署YOLOv5算法C源码+项目使用说明.zip基于Hisi3559A移植部署YOLOv5算法C源码+项目...
### Linux下网上邻居Samba的移植 #### 一、引言 Samba是一个在Linux系统上实现SMB(Server Message Block)协议的软件包,它可以让Linux系统与运行Windows系统的计算机进行文件共享和打印服务。Samba服务器可以作为...
Linux与Window平台移植 Linux与Window平台移植是指在不同的操作系统平台之间实现移植的技术,包括从硬件抽象层到操作系统环境的建立,以及任务调度、时钟管理、串口驱动和命令行 Shell 的实现。本文将对 Linux 与 ...
在嵌入式系统开发领域,从VxWorks到Linux的移植是一项常见的任务,尤其是在追求开源、灵活和成本效益更高的解决方案时。VxWorks是一个实时操作系统(RTOS),以其高性能和确定性而闻名,而Linux则是一个功能强大且...
LINUX 移植论文参考移植过程 本文档介绍了 Linux 内核移植到 S3C2440 开发板的详细过程,涵盖了从下载最新的稳定版本的 Linux 内核到编译和配置整个移植过程。 一、下载最新的稳定版本的 Linux 内核 在下载最新的...
在现代信息技术的快速发展下,跨操作系统的软件移植日益频繁。对于C语言编写的程序,从Windows到...随着开源技术的不断进步,Linux平台下的C程序移植将更加高效和简便,这对于推动软件开发行业的创新发展具有重要意义。
- 掌握Linux下的程序编译与交叉编译过程,包括对编译器的配置。 - 能够根据目标硬件特性重新编译和烧写开发板内核镜像。 六、移植过程中的常见问题及解决方法: - 修改Makefile或者在configure时进行调整以解决平台...
《Linux系统移植项目报告》是一份详尽的教程,涵盖了从基础到高级的Linux系统移植步骤,旨在帮助读者理解和实践Linux在特定硬件平台上的移植工作。以下是对该报告中的主要知识点的详细阐述: 1. **U-boot移植**: ...
"嵌入式Linux系统移植" 嵌入式Linux系统移植是指将Linux操作系统移植到嵌入式设备中,以满足各种应用需求。嵌入式Linux系统移植的重要性在于其广泛的应用场景,例如手机、洗衣机、汽车等设备都需要嵌入式Linux系统...
"嵌入式Linux系统的移植研究" 嵌入式Linux系统的移植研究是指在嵌入式系统中实现Linux操作系统的移植,涉及到嵌入式系统的设计、开发、测试和移植等方面。该研究领域涵盖了嵌入式系统的软硬件设计、Linux操作系统的...
【Qt软键盘Linux下实现及移植到ARM】 在嵌入式设备或移动设备开发中,尤其是在没有物理键盘的Linux系统上,实现一个软键盘是非常重要的功能。Qt作为一个跨平台的图形用户界面(GUI)框架,提供了丰富的工具和API来...
然而,当需要将这些项目移植到Linux系统时,开发者通常需要手动重构构建过程,因为VS2008使用的项目文件格式与Linux下的Makefile系统不兼容。为了解决这个问题,出现了"VS2008项目移植到Linux的makefile转化工具"。 ...